TL; DR :我需要一种使用(最好是纯净的)Python从图像文件中解码QR码的方法。
我有一个带有QR码的jpg文件,我想使用Python对其进行解码。我找到了一些声称可以做到这一点的库:
PyQRCode (这里的网站)可以通过简单地提供如下路径来解码图像中的
二维 码:
import sys, qrcode
d = qrcode.Decoder()
if d.decode('out.png'):
print 'result: ' + d.result
else:
print 'error: ' + d.error
因此,我只是使用安装了它sudo pip install pyqrcode
。但是,我对上面的示例代码感到奇怪的是,它仅导入qrcode
(而不是导入pyqrcode
),因为我认为qrcode
引用的是只能
生成 qr代码图像的库,这使我感到困惑。所以我用和尝试了上面的代码,但是都在第二行说了失败。此外,该网站还引用了Ubuntu
8.10(发布于6年前),我找不到它的公共(git或其他)存储库来检查最新的提交。所以我转到下一个库:
__pyqrcode``qrcode``AttributeError: 'module' object has no attribute 'Decoder'
ZBar (在这里的网站)声称是"an open source software suite for reading bar codes from various sources, such as image files."
这样,所以我尝试在运行的Mac OSX上安装它sudo pip install zbar
。失败error: command 'cc' failed with exit status 1
。我试图在这个SO问题的答案中提出建议,但似乎无法解决。因此,我决定再次继续:
QRTools ,根据此博客文章,可以使用以下代码轻松解码图像:
from qrtools import QR
myCode = QR(filename=u"/home/psutton/Documents/Python/qrcodes/qrcode.png")
if myCode.decode():
print myCode.data
print myCode.data_type
print myCode.data_to_string()
因此,我尝试使用进行安装sudo pip install qrtools
,但找不到任何内容。我也试了一下python-qrtools
,qr- tools
,python- qrtools
和一对夫妇更多的组合,可惜不得要领。我想它指的是这个仓库,它说它是基于ZBar的(见上文)。尽管我想在Heroku上运行我的代码(因此更喜欢使用纯Python解决方案),但我成功地将其安装在Linux机器上(使用sudo apt-get install python-qrtools
)并尝试运行它:
from qrtools import QR
c = QR(filename='/home/kramer65/qrcode.jpg')
c.data # prints u'NULL'
c.data_type # prints u'text'
c.data_to_string() # prints '\xef\xbb\xbfNULL' where I expect an int (being `1234567890`)
尽管这似乎可以对其进行解码,但似乎无法正确执行。此外,它需要ZBar,因此不是纯Python。所以我决定再找一个图书馆。
PyXing (这里的网站)应该是流行的Java
ZXing库的Python端口,但是最初的唯一提交已经有6年的历史了,该项目没有任何自述文件或文档。
对于剩下的我发现一对夫妇QR- EN 编码器(未 德
编码器),并且能为你解码一些API端点。由于我不希望此服务依赖于其他API端点,因此我希望将解码保持在本地。
因此得出结论;有谁知道我如何用(最好是纯净的)Python从图像中解码QR码?欢迎所有提示!
您可以尝试执行以下步骤并使用以下代码进行编码qrtools
:
创建qrcode
文件(如果尚不存在)
pyqrcode
这样做,可以使用安装pip install pyqrcode
>>> import pyqrcode
qr = pyqrcode.create(“HORN O.K. PLEASE.”)
qr.png(“horn.png”, scale=6)
使用解码现有qrcode
文件qrtools
qrtools
使用安装sudo apt-get install python-qrtools
>>> import qrtools
qr = qrtools.QR()
qr.decode(“horn.png”)
print qr.data
u’HORN O.K. PLEASE.’
这是一次运行的完整代码:
In [2]: import pyqrcode
In [3]: qr = pyqrcode.create("HORN O.K. PLEASE.")
In [4]: qr.png("horn.png", scale=6)
In [5]: import qrtools
In [6]: qr = qrtools.QR()
In [7]: qr.decode("horn.png")
Out[7]: True
In [8]: print qr.data
HORN O.K. PLEASE.
注意事项
PyPNG
usingpip install pypng
用于pyqrcode
如果已PIL
安装,则可能会得到IOError: decoder zip not available
。在这种情况下,请尝试PIL
使用以下方法进行卸载和重新安装:
pip uninstall PIL
pip install PIL
如果这样不起作用,请尝试Pillow
改用
pip uninstall PIL
pip install pillow
问题内容: 我希望用Java动态生成QR码。什么是最好的QR码生成器库?我会同时考虑商业和开源吗? 问题答案: 我不知道什么是 最 合适的,但是zxing具有适用于Java的qr代码生成器,正在积极开发中,并获得了自由许可。
问题内容: 我用python脚本下载了一个网页。在大多数情况下,这可以正常工作。 但是,这个有一个响应标头:GZIP编码,当我尝试打印此网页的源代码时,它的腻子中包含所有符号。 如何将其解码为普通文本? 问题答案: 我使用zlib从Web解压缩压缩的内容。
问题内容: 好的,所以我要把握机会,这里的某个人以前使用过zxing。我正在开发Java应用程序,它需要做的一件事是将字节数据数组编码为QR码,然后在以后对其进行解码。 这是我的编码器外观的示例: 此代码中的开始字节数组仅用于对其进行测试。实际的字节数据将有所不同。 这是我的解码器的外观: 是一种将字节数组转换为十六进制字符串的方法。 当我尝试同时运行这两个代码块时,输出如下: 显然,文本已被编码
问题内容: 试图使用像ZXing,ZBar和它们的fork之类的几个库,但是找不到从相机而不是从文件扫描条形码的方法。 有人可以指出我正确的方向吗?最好是我正在研究ZXing:如何从文件(而不是相机)扫描图像。 请。 问题答案: 最后,我找到了解决方案。代码是(源自此处): Gradle引用为: 用法:
我添加了Firebase,允许客户端直接从web应用程序客户端(浏览器)进行身份验证。我正在使用firebase web JS包,它工作得非常好。我可以在浏览器中看到,我收到一个用户对象,其中包含有关该用户的信息,包括。 然后,我需要在我的服务器后端(即python django)上对该用户进行身份验证。在Firebase文档中,我找到了一个我正试图做的操作指南,即验证id令牌。 因为他们没有支持
问题内容: 我通过xmlrpc从我的一个客户那里获得的字符串有问题。他给我发送了两次编码的utf8字符串:(因此,当我在python中获取它们时,我有一个unicode对象,该对象必须再解码一次,但显然python不允许这样做。我注意到我的客户端但是我需要在修复之前先进行快速解决。 来自tcp转储的原始字符串: 它将转换为: 我们得到的最好的是: 结果是正确的字符串,它是: 但是,这很丑陋,不能在