python - 使用python的二维码解码得到太多的值来解包错误
问题描述
我正在使用 python 生成一个二维码图像。
我的代码:
import qrcode
data = 'Authenticated'
img = qrcode.make(data)
img.save('trademark.jpg')
之后,我想从我自己生成的二维码中获取信息。对于上面的代码,它会给出像 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, width, height = image
148
149 # Check dimensions
ValueError: too many values to unpack (expected 3)
如何调试代码?
解决方案
我建议使用 PIL 打开图像,也就是说,pyzbar
它的设计目的是:
from pyzbar.pyzbar import decode
from PIL import Image
img = Image.open("trademark.jpg")
result = decode(img)
推荐阅读
- javascript - 检查元素是否具有焦点 - Vue.js 指令
- c# - C# complex class constructors
- intellij-idea - Intellij - 更改活动选项卡/编辑器的颜色
- typescript - 堆栈导航器上的反应导航打字稿错误
- julia - 在 Julia 中有效地将 Dict 转换为 NamedTuple
- flutter - 颤振防止后按时关闭对话框
- java - 使用 vlcj 将音频数据提取到内存
- python - 如何在 Python 中从用户输入(日历选择)中获取日期/时间值
- linux - 在Java程序中使用bash检查文件是否存在?
- sql - 将字符串字符附加到日期计算