使用 python 的二维码解码得到的值太多,无法解包错误

问题描述

我正在使用 python 生成二维码图像。

我的代码

import qrcode
data = 'Authenticated'

img = qrcode.make(data)

img.save('Trademark.jpg')

之后,我想从我自己生成二维码获取信息。对于上面的代码,它会给出像 name Authenticated 这样的输出和其他信息,比如 QRcode 的高度等。

获取二维码数据的代码

from pyzbar.pyzbar import decode
from PIL import Image

decode_image = ("Trademark.jpg")

result = decode(decode_image)

我收到上述代码片段的错误

ValueError                                Traceback (most recent call last)
<ipython-input-10-dbd95bfa64b9> in <module>()
      4 decode_image = ("Trademark.jpg")
      5 
----> 6 result = decode(decode_image)

1 frames
/usr/local/lib/python3.7/dist-packages/pyzbar/pyzbar.py in _pixel_data(image)
    145     else:
    146         # image should be a tuple (pixels,width,height)
--> 147         pixels,height = image
    148 
    149         # Check dimensions

ValueError: too many values to unpack (expected 3)

如何调试代码

解决方法

我建议使用 PIL 打开图像,即pyzbar is designed for

from pyzbar.pyzbar import decode
from PIL import Image

img = Image.open("trademark.jpg")
result = decode(img)