二维码现在应用到生活的方方面面,每天通过二维码刷地铁,消费,二维码为我们生活带来了效率与便捷,而工作中例如做仓库管理,物品现在都会生成一个二维码,便于管理与搜索。python中一般使用模块qrcode来生成二维码。
一、什么是二维码?
二维码(2-Dimensional Bar Code),是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的。它是指在一维条码的基础上扩展出另一维具有可读性的条码,使用黑白矩形图案表示二进制数据,被设备扫描后可获取其中所包含的信息。一维条码的宽度记载着数据,而其长度没有记载数据。二维条码的长度、宽度均记载着数据。二维条码有一维条码没有的“定位点”和“容错机制”。容错机制在即使没有辨识到全部的条码、或是说条码有污损时,也可以正确地还原条码上的信息。生活中用到最多的就是二维条码-QR码了。
二、安装?
pip install pillow qrcode
三、使用?
import qrcode
# 0. 命令行生成二维码
# > qr "learnPython" >your_image.png
# 1. 代码生成qr码,保存二维码图片
img = qrcode.make("your-data") # 除了基本的文字之外,我们还可以将许多其他形式的数据放入 QR 图像中:例如 Web URL、字符序列、数字等
img.save("file_name.png")
# 2. QR码添加信息
# 假如我们现在得到一个二维码,并且我们希望在原始的消息之上添加一些信息,此时我们可以使用 qrcode 提供的 add_data 函数,样例代码如下:
import qrcode
qr = qrcode.QRCode()
qr.add_data('龙年')
qr.add_data('大吉')
other_img = qr.make_image()
other_img.save("just-add.png")
# 如果我们希望覆盖掉以前的信息,add_data函数也非常方便。我们需要做的就是额外添加另一个clear() 函数。代码如下:
import qrcode
qr = qrcode.QRCode()
qr.add_data('your data1')
img = qr.make_image()
qr.clear()
qr.add_data('your data2')
other_img = qr.make_image()
other_img.save("revise.jpg")
# 使用Opencv读取QR码
"""
一般来说,我们通常可以用手机来检测QR码中包含的消息,但我们是程序员,让我们用程序的方式来获取相应的信息。
此时我们需要用到OpenCV库,也可以通过pip来进行安装,命令如下:
pip3 install opencv-python
"""
# 此时我们需要做的就是先将QR图像读取到我们的 Python 中,
# 然后构建一个 QR 检测器。紧接着,我们就可以从二维码中读取数据了!
# 通过运行上述代码,我们可以看出和手机扫码获取同样的输出
import cv2
img = cv2.imread("just-add.png")
detector = cv2.QRCodeDetector()
data, bbox, straight_qrcode = detector.detectAndDecode(img)
print(data)
# Hello, there
领取专属 10元无门槛券
私享最新 技术干货