libqrencode(py2、py3和pypy)基于cffi的快速、健壮和不完全绑定
libqrencode-cffi的Python项目详细描述
对于 libqrencode(http://fukuchi.org/works/qrencode/index.en.html)。
python 2、python 3和pypy兼容!
安装
$ pip install libqrencode-cffi
示例
>>> import libqrencode as qr >>> qrc = qr.QRCode("Hello, world!") # The raw QR code can be accessed, where each item is a bitfield containing # information about that portion of the code (see DATA_* constants). >>> qrc.get_raw_data() [193, 193, 193, 193, ... 3, 2, 2, 3, 3] # If PIL is installed, a PIL image of the QR code can be created: >>> qrc.get_im(border=3) <PIL.Image.Image image mode=L size=81x81 at ...> # And if lxml.etree / xml.etree is available, an SVG can be generated: >>> qrc.get_svg_etree() <Element g at ...> >>> qrc.get_svg_string() '<g><rect fill="white" height="21" width="21" x="0" y="0"/>...<rect fill="black" height="1" width="1" x="20" y="19"/></g>'
常数
编码模式(参见https://en.wikipedia.org/wiki/QR_code#Encoding):
- MODE_NUL(qrencode内部)
- MODE_NUM
- MODE_AN
- MODE_8(默认值)
- MODE_KANJI
- MODE_STRUCTURE(libqrencode不完全支持)
- MODE_ECI(libqrencode不完全支持)
- MODE_FNC1FIRST(libqrencode不完全支持)
- MODE_FNC1SECOND(libqrencode不完全支持)
纠错模式:
- ECLEVEL_L(7%;默认值)
- ECLEVEL_M(15%)
- ECLEVEL_Q(25%)
- ECLEVEL_H(30%)
原始数据位掩码:
- DATA_BW(1=黑色/0=白色)
- DATA_DATA_AND_ECC(数据和ECC代码区)
- DATA_FORMAT_INFO(格式信息)
- DATA_VERSION_INFO(版本信息)
- DATA_TIMING_PATTERN(计时模式)
- DATA_ALIGNMENT_PATTERN(对齐模式)
- DATA_FINDER_PATTERN(查找模式和分隔符)
- DATA_NON_DATA(非数据模块(格式、定时等))