苏生不惑第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
生成二维码效果:
还有个模板 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'))
公众号 苏生不惑