1.3 制作及读取QR码

1.相关源码

制作 QR 码时所用到的第三库是 qrcode 。读取时所用第三方库是 zxing 和 pyzbar 。

制作 QR 码源码

import qrcode

# 二维码内容
data = "test"
# 生成二维码
img = qrcode.make(data=data)
# 保存二维码为文件
img.save("test.png")

利用 pyzbar 读取 QR 码源码

# -*- coding: utf-8 -*-
"""pyzbar 识别 QR 码"""

import os
from PIL import Image
from pyzbar import pyzbar


def decode_qr_code(code_img_path):

    if not os.path.exists(code_img_path):
        raise FileExistsError(code_img_path)

    return pyzbar.decode(Image.open(code_img_path))[0].data.decode()


if __name__ == '__main__':
    img = "test.png"
    print(decode_qr_code(img))

利用 zxing 读取 QR 码源码

# -*- coding: utf-8 -*-
"""使用 zxing 读取二维码"""

import zxing

reader = zxing.BarCodeReader()
barcode = reader.decode("test.png")
text = barcode.parsed

print(text)

2.问题及解决方法

2.1 使用 pyzbar 读取时报以下错误

$ ImportError: Unable to find zbar shared library

解决方法:安装 zbar-tools

$ sudo apt-get install zbar-tools

2.2 使用 zxing 读取时报以下错误

$ zxing No such file or directory: 'java'

解决方法:安装 jpype 扩展

$ sudo apt-get install python-jpype