各位同学好,今天又是一个晴空万里的周末,面对外面这么好的天气,不好好在家学习怎么对得起外面的这个天气。
在逛 Github 的时候,发现了一个好玩的二维码制作的库:https://github.com/sylnsfar/qrcode 。这个库的 star 已经超过 7k 了,而且附带了中文文档,各位感兴趣的同学可以访问前面那个链接为作者点亮一个 star 。
这个库的介绍是这么写的:
Python 艺术二维码生成器 (GIF动态二维码、图片二维码)
先放一个自己的作品,然后我们再来细细拆解这东西怎么做。
上面是小编使用的两个 gif 动图生成的两个二维码,看起来还是满炫酷的,那么,这玩意到底是怎么做出来的。
第一步,当然是需要先安装对应的类库:
pip install myqr
有一点需要说明下, myqr 目前只支持运行在 python3 的环境下,所以,还在使用 python2 的同学们,你们已经被时代抛弃了。
第二步就是素材准备了,动图的资源已经提交到代码仓库了,小编这里就不贴出来了,当然,想要使用自己喜欢的动图也是可以的,小编这两个动图是来自于自己的肥宅小伙伴(请这位同学自己在评论区报道)。
接下来就是二维码部分了,首先我们要清楚二维码本质上记录了什么。
二维条码/二维码(2-dimensional bar code)是用某种特定的几何图形按一定规律在平面(二维方向上)分布的、黑白相间的、记录数据符号信息的图形;在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理:它具有条码技术的一些共性:每种码制有其特定的字符集;每个字符占有一定的宽度;具有一定的校验功能等。同时还具有对不同行的信息自动识别功能、及处理图形旋转变化点。
上面这段内容是摘自百度百科,如果没看懂,没关系,小编用大白话解释一下:就是使用对应的算法,讲信息存储在了图形中,本质上我们日常见到的二维码解码后都是一串字符串。
既然二维码是字符串,那就好说了,就拿小编的公众号二维码来讲,我们如何知道这个二维码上的字符串到底是什么呢?
做过运营的同学应该对一个网站非常熟悉,草料二维码:https://cli.im/ 。
在这个网站上,我们可以通过上传二维码进行解析,从而得到这个二维码中的信息。
小编这里上传下公众号的二维码,看下结果:
可以看到,解码后的结果是一个网址:http://weixin.qq.com/r/Lym2rp7Ev8PArdrN93w9 ,拿到这个网址信息后,我们的准备工作就完成了。
接下来就是使用 myqr 生成我们的动态二维码了:
from MyQR import myqr
import os
version, level, qr_name = myqr.run(
words="http://weixin.qq.com/r/Lym2rp7Ev8PArdrN93w9", # 可以是字符串,也可以是网址(前面要加http(s)://)
version=1, # 设置容错率为最高
level='H', # 控制纠错水平,范围是L、M、Q、H,从左到右依次升高
picture="3.gif", # 将二维码和图片合成
colorized=True, # 彩色二维码
contrast=1.0, # 用以调节图片的对比度,1.0 表示原始图片,更小的值表示更低对比度,更大反之。默认为1.0
brightness=1.0, # 用来调节图片的亮度,其余用法和取值同上
save_name="4.gif", # 保存文件的名字,格式可以是jpg,png,bmp,gif
save_dir=os.getcwd() # 控制位置
)
对于上面这一小段代码,小编就不多解释了,里面的注释已经写得很清楚了。
是不是很简单,当然小编是使用了自己的公众号二维码,各位同学也可以使用自己的微信二维码,使用自己喜欢的动图,通过上面这一小段代码,制作一个自己专属的个人微信二维码。
本篇文章中使用到的二维码、动图以及代码,都上传代码仓库,有需要的同学请自取。