生成二维码的代码 python,python制作二维码步骤
近日,知乎发布报告称,安全防护体系全面升级(如管家所说)。
现在内容中的二维码会自动替换成相应的链接,并贴上“(二维码自动识别)”的字样。
今天我们来看看如何用Python自动识别二维码。
01.编码
首先熟悉一套理论:二维码是什么?
我们都见过条形码,是“一维码”的一种。在垂直方向,条码是统一的,长度不影响。信息仅在水平方向存储。
二维码的信息存储在整个平面上,常见的二维码称为二维码。其实广义的二维码有很多种形式,比如过去机器编程用的穿孔带,考试用的答题卡。
二维码的一个优点是容错率高,即使遮挡了一部分也不会影响解码。这就是为什么很多二维码中间会放一个图标。本质上,这个图标相当于二维码的另一个代码。
如果把太极图看成二进制,那么它也是一个二维码,白色的是0,黑色的是1。
二维码存储信息的基本套路类似于“阴阳”,白0黑1。显眼的方块和虚线用于辅助定位。
本来是有二维码图案来显示各个区域的功能,但是被自动识别了。
华生先生,过来-我想见你。(二维码自动识别)
边角上的特定区域按照标准存储固定的信息,就像一张纸不可能写满问题,但总有一个地方可以写班名。
要编码的目标字符先转换成二进制数,这个数的位数与二维码的大小有关。可以将二进制数映射成黑白色块,然后根据标准例程填充到数据区中。
虽然编码的内容不一样,但是我们生活中看到的二维码看起来都差不多,看起来都很“均匀”,这就是“口罩”的作用。
蒙版就像Photoshop里的“蒙版”。在与原始数据进行XOR计算后,结果代码看起来是偶数。
02.解码
解码是编码的逆过程,是还原原始信息。在Python中,使用了一个名为zbar的库。
这个库说起来很别扭(因为本来就不是用Python写的,有很多外部依赖)。首先,官网上的包最高只支持Python 2.6和Buzici 2.7其次,2.6是2.6,但安装一直失败,无论Linux、Win10还是Mac;最后发现只支持32位系统,又装了一个XP虚拟机。
当熟悉的开机音乐伴随着蓝天绿地出现的时候,我仿佛回到了刚买电脑在家的那个下午。
zici Python 2.7的一个zbar安装包:
除了zbar库,还需要PIL库进行镜像操作。
3.微小的例子
#-*-编码:utf-8 -*-
导入zbar
从PIL进口图片
#创建图片扫描对象
scanner=zbar。图像扫描仪()
#设置对象属性
scanner.parse_config(“启用”)
#用二维码打开图片
Img=Image.open(你的图片路径)。转换(“L”)
#获取图片的大小
宽度,高度=img.size
#创建zbar图片对象,扫描成字节信息。
二维码=zbar。Image(宽度,高度, Y800 ,img.tobytes())
scanner.scan(二维码)
数据=
对于二维码中的s:
数据=s.data
#删除图片对象
del img
#输出解码结果
打印数据
运行结果:
解码成功后,会得到一个URL地址。当我们用手机扫描二维码时,流程是解析二维码后通过微信向网址发送请求,然后访问。
以上案例,用的是本文的题图。二维码不是整张图片的主体,而是融入了背景,依然不影响识别。(不过这篇文章中的题图是知乎不认可的,我猜是因为题图位置的原因。)
图中石榴姐手里的二维码是我的【回答】首页链接。之前已经回答了几个问题,欢迎感兴趣的朋友关注并提问。
除了在微信上扫描二维码,还可以直接搜索“凯撒”。头像是一样的。谢谢你。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。