一行代码制作酷炫的二维码
1.二维码能用的完吗?
很多人都扫过二维码,大部分人的印象都是黑白相间的小方块,实际上二维码是运用了计算机图像处理技术,组合编码原理的一种编码,其用黑白像素点的图像来代表二进制中的“1”和“0”,通过对点的排列组合来表达其所代表的意义所以二维码的本质是将数据转换一种方式存储。无论谁生成一个含有“多人运动,五人开黑”内容的二维码,最后输出的二维码是一样的。
二维码最关键的信息如下,只要能扫到这5个部分就能扫到二维码的内容,不然你可以用手指头挡住其中任何一个部分可以扫出来试试看。
那么一张二维码最多能存储多少信息呢?二维码是有大小限制的,最大的二维码是版本40的二维码177 * 177。最小的版本1的二维码是21 * 21。如果用最大的二维码存储数据,可以存7089个数字或4296个字母,23624bit的数据,就像图下所示,你的手机能扫出来吗?(终于找到换手机的理由了,二维码都扫不出来🐶)
版本40的二维码
还有人担心二维码会不会用完,想引领时代先锋开创3D码。这里我们可以算一下,最小版本的二维码是21*21,一共有441个格子,每个格子只有黑或白两种选择,再减去二维码固定数量的192个角落的定位框。21×21格式的二维码有2的249次方种组合,这个数字有75位。如果中国人每天每秒扫1次码,可以扫14.79亿亿亿亿亿亿亿年(7个亿),等用完贾跃亭都回国了。
2.一行代码生成经典二维码
用python的MyQR库来制作一个二维码只需要一行代码,第一个参数输入二维码里的内容(不能输入中文),第二个参数输入保存的二维码图片名称即可生成一张二维码。
from MyQR import myqr as mq
mq.run('https://www.zhihu.com/people/hou-yu-wen-80',save_name='ewm.png')
复制代码
如果想生成带中文的二维码,需要使用qrcode库来制作,也仅需要一行代码可以生成出来
import qrcode
qrcode.make('我卢本伟没有开挂').save('test.png')
复制代码
import qrcode
qr = qrcode.QRCode(version=1,error_correction=qrcode.constants.ERROR_CORRECT_L,box_size=10,border=4,)
qr.add_data('我卢本伟没有开挂')
qr.make(fit=True)
img = qr.make_image(fill_color="black", back_color="white")
img.save('lbw.png')
"""参数含义:
version:值为1~40的整数,控制二维码的大小(最小值是1,是个12×12的矩阵)。 如果想让程序自动确定,将值设置为 None 并使用 fit 参数即可。
error_correction:控制二维码的错误纠正功能。可取值下列4个常量。
ERROR_CORRECT_L:大约7%或更少的错误能被纠正。
ERROR_CORRECT_M(默认):大约15%或更少的错误能被纠正。
ROR_CORRECT_H:大约30%或更少的错误能被纠正。
box_size:控制二维码中每个小格子包含的像素数。
border:控制边框(二维码与图片边界的距离)包含的格子数(默认为4,是相关标准规定的最小值)
"""
复制代码
3.带图片二维码
当然经典版的二维码不能满足我们对装x的使用,这里我们可以将自己女朋友的头像做成二维码,无形装x最为致命。
from MyQR import myqr as mq
mq.run('https://www.weibo.com/u/5644764907',
picture="ycy.jpg",
colorized=True,
save_name='ycy_code.png')
复制代码
只需要将picture参数里导入对应的图片即可生成有背景图片二维码,如果导入的图片是gif格式,对应的则会生成动态二维码。
运动健将
篮球巨星
4.可以制作恶搞/表白二维码
如果把二维码跟其他应用/网站联系在其一起将有出奇意外的效果,以下二维码均有特殊的功能,可以慢慢享用。
恶搞二维码
表白二维码