乐趣区

关于python:2020七夕又来了教你给女朋友做个动态二维码

苏生不惑第 166 篇原创文章,将本公众号设为 星标,第一工夫看最新文章。

又到了一年一度的七夕了,之前写过据说 520 你还没对象,来这里看看,是不还在想送什么礼物,明天分享一个有意思的动静二维码,能够用来哄女朋友开心。

二维码

二维码也称为二维条码,是指在一维条码的根底上扩大出另一维具备可读性的条码,应用黑白矩形图案示意二进制数据,被设施扫描后可获取其中所蕴含的信息。

以上来自维基百科解释 https://zh.wikipedia.org/zh-c…,自从有了微信,二维码曾经随处可见了。

应用 Chrome 扩大能够轻易的生成二维码 https://chrome.google.com/web…

明天介绍的是基于 Python 的二维码工具 myqr。

myqr

myqr 可生成一般二维码、带图片的艺术二维码(黑白与黑白)、动静二维码(黑白与黑白)https://github.com/sylnsfar/q…,间接应用 pip install myqr 装置它。

这里以一个表白网页 myqr http://sushengbuhuo.gitee.io/… 生成二维码。

 λ myqr http://sushengbuhuo.gitee.io/love/
line 16: mode: byte
Succeed!
Check out your 5-H QR-code: d:\download\qrcode.png

生成二维码成果:

接着用 GIF 生成一个动静二维码。

λ myqr http://sushengbuhuo.gitee.io/love/ -p lovelove.gif
It may take a while, please wait for minutes...
line 16: mode: byte
Succeed!
Check out your 5-H QR-code: d:\download\lovelove_qrcode.gif

生成二维码成果:

myqr http://sushengbuhuo.gitee.io/love/ -p lovelove.gif -c 黑白成果

再清晰点。

用微信扫码后显示成果,能够本人长按辨认二维码:

惋惜动图在微信里没法辨认。

还有个模板 https://a.scene.ehqxiu.cn/s/X…

微信扫描后成果:

如果你没有 Python 环境,这里提供了一个 exe 程序(公众号内回复 女朋友 获取),应用办法很简略,在 exe 文件同级目录创立一个文件 info.txt,在外面输出对应的参数,之后双击 myqr.exe 运行即可。

info.txt 文件格式如下:

words=http://sushengbuhuo.gitee.io/love/
v=11
p=lovelove.gif
l=Q
c
con=1.5
bri=1.3

你只须要改 p 前面参数 lovelove.gif(GIF 文件名,就是下面那个给你小心心的 GIF 图,你也能够本人找一个)。

第一次应用会主动下载一些库文件,因为程序依赖 imageio

如果下载很久不动,你能够从这里本人下载到本地
https://github.com/imageio/im…,而后把这个文件放到 freeimage 目录
C:UsersxxxAppDataLocalimageiofreeimage(xxx 为本人电脑用户名),如果没有 freeimage 文件夹须要手动创立。

imageio 目录还有 ffmpeg 目录,外面有个文件 ffmpeg-win32-v3.2.4.exe,也能够从这里下载 https://github.com/imageio/im…,运行 myqr.exe 后在本地生成动静 GIF 图 lovelove_qrcode.gif。

这里给我的公众号二维码也生成个 GIF 图,公众号的二维码能够通过微信号生成 https://open.weixin.qq.com/qr…,解码后的地址为 http://weixin.qq.com/r/WDvM1M…,生成成果:

上面分享段 Python 代码,输入❤心形 love

代码输入爱

命令行执行
print('\n'.join([''.join([('Love'[(x-y) % len('Love')] if ((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3 <= 0 else' ') for x in range(-30, 30)]) for y in range(30, -30, -1)]))


                veLoveLov           veLoveLov
            eLoveLoveLoveLove   eLoveLoveLoveLove
          veLoveLoveLoveLoveLoveLoveLoveLoveLoveLov
         veLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveL
        veLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLov
        eLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLove
        LoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveL
        oveLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLo
        veLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLov
        eLoveLoveLoveLoveLoveLoveLoveLoveLoveLoveLove
         oveLoveLoveLoveLoveLoveLoveLoveLoveLoveLove
          eLoveLoveLoveLoveLoveLoveLoveLoveLoveLove
          LoveLoveLoveLoveLoveLoveLoveLoveLoveLoveL
            eLoveLoveLoveLoveLoveLoveLoveLoveLove
             oveLoveLoveLoveLoveLoveLoveLoveLove
              eLoveLoveLoveLoveLoveLoveLoveLove
                veLoveLoveLoveLoveLoveLoveLov
                  oveLoveLoveLoveLoveLoveLo
                    LoveLoveLoveLoveLoveL
                       LoveLoveLoveLov
                          LoveLoveL
                             Lov
                              v

还能够自定义

import time
words = input('Please input the words you want to say!:')
for item in words.split():
    print('\n'.join([''.join([(item[(x-y) % len(item)] if ((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3 <= 0 else' ') for x in range(-30, 30)]) for y in range(12, -12, -1)]))
    time.sleep(1.5)

[plt.show() for _, __, ___, plt in [(plt.plot(x, y1, color='r'), plt.plot(x, y2, color='r'), np, plt) for x, y1, y2, np, plt in [(x, 0.618*np.abs(x) - 0.8* np.sqrt(64-x**2), 0.618*np.abs(x) + 0.8* np.sqrt(64-x**2), np, plt) for x, np, plt in [(np.linspace(-8, 8, 1024), np, plt) for np, plt in [(__import__('numpy'), __import__('pylab'))]]]]]

没有装置 Python,在浏览器控制台也是能够的。

console.log([...Array(30).keys()].map(u=>u-15).reverse().map(y=>[...Array(60).keys()].map(u=>u-30).map(x=>((x*0.04)**2+(y*0.1)**2-1)**3-(x*0.04)**2*(y*0.1)**3<=0?'babyiloveu'.split('').slice([(x-y)%10])[0]:' ').join('')).join('\n'))

公众号 苏生不惑

退出移动版