Python 生成 + 识别二维码

二维码(QR Code),使用平面图案存储信息,根据白 0 黑 1 的算机内部逻辑,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理,记录好所有数据后查询 Unicode 表,将二进制编码转换成十六进制的编码,最后找出该 Unicode 值相对应的文字。

  • 运行命令行工具(cmd),使用 pip 安装工具分别安装 qrcode、pyzbar
pip install qrcode
pip install pyzbar

生成二维码

    import qrcode
     
    # 二维码内容
    data = "hello world!"
     
    qr = qrcode.QRCode(
        version=4,  # 整数(1-40)
        error_correction=qrcode.constants.ERROR_CORRECT_L,  # 二维码的纠错范围
        box_size=100,  # 每个点(方块)中的像素个数
        border=4  # 二维码距图像外围边框距离,默认为4,而且相关规定最小为4
    )
     
    # 将数据添加到此QR码。
    qr.add_data(data)
    # 将数据编译为QR Code数组。
    qr.make(fit=True)
     
    # 生成二维码
    img = qr.make_image()
    # 直接显示二维码
    img.show()
    # 保存二维码为文件
    img.save("hello.jpg")

结果如下:
Python 生成 + 识别二维码

识别二维码

    import pyzbar.pyzbar as pyzbar
    from PIL import Image
     
    # 图片路径
    image = "hello.jpg"
     
    img = Image.open(image)
     
    # 解码 image 中的 datamatrix 条形码
    barcodes = pyzbar.decode(img)
     
    barcodeData = ""
    for barcode in barcodes:
        barcodeData += barcode.data.decode("utf-8")
     
    print(barcodeData)

结果如下:
Python 生成 + 识别二维码