二维码(Quick Response Code)几乎已经渗透到我们日常生活的每一个角落,它是 1994 年发明的一种矩阵条形码,可以用某种特定的几何图形按一定规律在平面(二维方向上)分布的、黑白相间的、记录数据符号信息的图形。在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理。它具有条码技术的一些共性:每种码制有其特定的字符集;每个字符占有一定的宽度;具有一定的校验功能等。同时还具有对不同行的信息自动识别功能、及处理图形旋转变化点。实际应用中,二维码通常包含指向网站或应用程序的URL、标识符等,它的基本结构如下图所示。
二维码的结构充分保证了它的有效性,所以二维码才能够大行其道,成为应用的主流。以下代码生成2个二维码。
import qrcode
import zxing
from PIL import Image
from pyzbar.pyzbar import decode
def genqr(text, outputfilename):
qr = qrcode.QRCode(
version=3, error_correction=qrcode.constants.ERROR_CORRECT_Q, box_size=10, border=4)
qr.add_data(text)
qr.make(fit=True)
img = qr.make_image(fill_color="green", back_color='white')
img.show()
img.save(outputfilename)
def scanqr(inputimg):
im = Image.open(inputimg)
for qrcode in decode(im):
print(qrcode.data.decode('utf8'))
def scanqr2(inputimg):
reader = zxing.BarCodeReader()
barcode = reader.decode(inputimg)
print(barcode.parsed)
genqr("宁思一进,莫思一停", r'd:\test\qrdemo.png')
scanqr(r'd:\test\qrdemo.png')
genqr("https://www.shanxihualu.com/", r'd:\test\qrdemourl.png')
scanqr2(r'd:\test\qrdemourl.png')
二维码qrdemo.png如下图所示。
这个图直接使用微信的扫一扫就能够看到里面的文字。也可以使用scaqr函数加载这个图片后识别出来。
二维码qrdemourl.png如下图所示。
直接使用微信扫一扫就可以到西安衍舆的官网上(因为它是一个URL超链)。使用scanqr2也可以识别出来。需要指出的是,上述代码中使用了2个识别二维码的第三方库:
•zxing
•pyzbar
它们的安装过程如下所示。
pip install qrcode
pip install pyzbar
pip install zxing
此外,还可以使用myqr来生成更多有趣变化的二维码。
以上就是“Python工具箱系列”的全部内容,希望对你有所帮助。
关于Python技术储备
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python必备开发工具
三、Python视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、Python练习题
检查学习结果。
六、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
最后祝大家天天进步!!
上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。