二维码(Quick Response code)已成为在物理和数字领域之间架起桥梁的多功能工具。从分享联系信息和网站链接到促进支付和跟踪库存,二维码在各个行业中找到了应用。通过利用Python的功能,用户可以自动化生成个性化的二维码,或者在项目中集成扫描功能,从而提高效率和用户参与度。本文将展示如何使用Python自动化创建和扫描二维码。
- 使用Python创建二维码
- 使用Python扫描二维码
本文中使用的方法需要Spire.Barcode for Python,PyPI:pip install Spire.Barcode
。
申请免费License
使用Python创建二维码
BarcodeSettings
类可用于配置生成条形码的设置。这些设置包括条形码类型、要编码的数据、颜色、边距以及水平和垂直分辨率。
完成这些设置后,我们可以使用这些配置创建一个BarcodeGenerator
实例。随后,我们可以调用生成器的GenerateImage()
方法来生成条形码图像。
步骤如下:
- 导入
BarcodeSettings
、BarCodeType
、QRCodeECL
和BarCodeGenerator
模块。 - 创建一个
BarcodeSettings
对象。 - 使用
BarcodeSettings.Type
属性将条形码类型设置为二维码。 - 使用
BarcodeSettings.Data2D
属性设置二维条形码的数据。 - 使用
BarcodeSettings
对象下的属性设置条形码的其他属性。 - 基于这些设置创建一个
BarCodeGenerator
对象。 - 使用
BarCodeGenerator.GenerateImage()
方法创建二维码图像。
代码示例
from spire.barcode import BarcodeSettings, BarCodeType, QRCodeECL, BarCodeGenerator# 将所有字节写入文件
def WriteAllBytes(fname: str, data):with open(fname, "wb") as fp:fp.write(data)fp.close()# 创建 BarcodeSettings 对象
barcodeSettings = BarcodeSettings()# 设置条形码类型为 QR 码
barcodeSettings.Type = BarCodeType.QRCode# 设置 2D 条形码的数据
barcodeSettings.Data2D = "Hello, World"# 设置边距
barcodeSettings.LeftMargin = 0.2
barcodeSettings.RightMargin = 0.2
barcodeSettings.TopMargin = 0.2
barcodeSettings.BottomMargin = 0.2# 设置水平分辨率
barcodeSettings.DpiX = 500# 设置垂直分辨率
barcodeSettings.DpiY = 500# 设置纠错级别
barcodeSettings.QRCodeECL = QRCodeECL.M# 不在条形码上显示文本
barcodeSettings.ShowText = False# 在 QR 码的中心添加 logo
barcodeSettings.SetQRCodeLogoImage("PDF.png")# 使用指定的设置创建 BarCodeGenerator 实例
barCodeGenerator = BarCodeGenerator(barcodeSettings)# 生成条形码图像
image = barCodeGenerator.GenerateImage()# 将 PNG 图像写入磁盘
WriteAllBytes("output/QR-Code.png", image)
生成结果
使用Python扫描二维码
库中的BarcodeScanner
类用于条形码图像识别。这个类提供了几种从条形码中提取数据的方法,包括:
ScanOneFile()
: 扫描单个条形码图像文件并返回提取的数据。ScanFile()
: 扫描指定图像文件中的所有条形码并返回提取的数据。ScanStream()
: 从图像数据流中扫描条形码并返回提取的信息。
以下代码演示了如何使用它扫描二维码图像。
扫描二维码的步骤如下(扫描二维码需要应用License):
- 导入
BarcodeScanner
模块。 - 使用
BarcodeScanner.ScanOneFile()
方法扫描包含一个二维码的图像,或者使用BarcodeScanner.ScanFile()
方法扫描包含多个二维码的图像。 - 保存扫描结果到文本文件。
代码示例
from spire.barcode import BarcodeScannerLicense.SetLicenseKey("license key")# 扫描包含一个条形码的图像文件
result = BarcodeScanner.ScanOneFile("output/QR-Code.png")# 扫描包含多个条形码的图像文件
# results = BarcodeScanner.ScanFile("QR-Codes.png")# 将扫描结果保存到文本文件
with open("output/QR-Code.txt", "w", encoding="utf-8") as f:f.write(result)
扫描结果
本文展示了如何使用Python创建和扫描二维码。
有关更多二维码处理技巧,请访问Spire.Barcode for Python教程。