基于cffi的zbar二维码解码器的高效绑定(Py2、Py3和PyPy)
项目描述
为zbar(http://zbar.sourceforge.net/)设计的Python cffi绑定,旨在尽可能高效。
兼容Python 2、Python 3和PyPy!
注意:目前还在进行中。完全功能性和生产就绪(请参阅NumPy注意),但缺少一些配置选项。
安装
$ pip install libzbar-cffi
示例
>>> import libzbar as zb # Images can be loaded from PIL images: >>> from PIL import Image >>> im = Image.open("test/qr-numeric.png") >>> zb.Image.from_im(im).scan() [<Symbol type=ZBAR_QRCODE quality=1 data='12345' locator=[(12, 12), (12, 75), (75, 75), (75, 12)]>] # And from NumPy arrays. Note: if the array has an 8-bit data type (ex, # uint8) a pointer to its data will be passed directly into zbar making # this method very efficient. >>> import numpy as np >>> zb.Image.from_np(im.size, np.array(im)).scan() [<Symbol type=ZBAR_QRCODE quality=1 data='12345' locator=[(12, 12), (12, 75), (75, 75), (75, 12)]>] # By default, only QR codes will be scanned. Other symbol types can be # scanned using the ``symbol_type`` argument (see ``libzbar.symbol_types``), # or ``0`` for "all symbol types": >>> ean13 = zb.Image.from_im(Image.open("test/ean13-example.png")) >>> ean13.scan() [] >>> ean13.scan(symbol_type=0) [<Symbol type=ZBAR_EAN13 quality=449 data='0012345678905' locator=[(30, 23), ..., (30, 247)]>]
NumPy注意
当使用Image.from_np(…)构造函数时,将指向底层数组的指针直接传递给zbar。检查数组的大小和数据类型,但目前忽略了ctypes标志,如果底层数组不是简单的uint8_t[size[0] * size[1]],可能会发生奇怪的事情。
此外,不应该在Image的生命周期内更改数组,因为这可能会使数据指针无效。
项目详情
关闭
libzbar-cffi-0.2.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 11298fa96b6e1b9a308e1085c3a4eca4dd588d5e5f4a26affe3df188f0fbbf69 |
|
MD5 | 9e2bcf6ad67ee20a2f7ba0f636e2156c |
|
BLAKE2b-256 | 37de3c8405518c95684696e7b30b183c273aa97396377b1c87763ee4af82d82f |