|
qrcode 5.3
二维码图形生成器
纯净的python二维码生成器
这个模块使用了图形库,默认是Python Imaging Library (PIL) 生成二维码
推荐使用pillow分支而不是PIL自身。
什么是一个二维码?
一个二维码(快速响应码)是一个二维的象形文字的代码,由于快速可读性和比较大的容量存储(译者注,这个容量存储应该是指数学概念上的。)而被使用。
黑色模块的码子正方形排列在白色背景上。被编码的信息能由任何种类的信息组成(例如,二进制、字母数字或汉字符号)
用法
>从命令行使用已安装qr脚本代码如下:qr "Some text" > test.png
或者在python中,使用make快捷函数:
- import qrcodeimg = qrcode.make('Some data here')
复制代码
高级用法
使用QRCode类进行更多的控制。例如:
- import qrcodeqr = qrcode.QRCode( version=1, error_correction=qrcode.constants.ERROR_CORRECT_L, box_size=10, border=4,)
- qr.add_data('Some data')
- qr.make(fit=True)
- img = qr.make_image()
复制代码
version参数是从1到40的整数控制二维码大小(最小的是version 1,一个21x21大小矩阵)。设置version为None并且使用fit参数可以使代码自动地确定大小。
error_correction参数控制更多的用于二维码的错误修正。接下来的4个常量在qrcode包里可用:
ERROR_CORRECT_L大约7%或更少的错误能够被修正ERROR_CORRECT_M (default)[size=14.6404px]大约15%或更少的错误能够被修正ERROR_CORRECT_Q[size=14.6404px]大约25%或更少的错误能够被修正ERROR_CORRECT_H.[size=14.6404px]大约30%或更少的错误能够被修正
box_size参数控制二维码每个“盒子”是多少像素。
border参数控制了边界应该是多少盒子层(默认为4,这是根据规格最小的)。
其他图片工厂
你可以编码成SVG,或者使用一个新的纯净python image处理器去编码PNG图片。
python例子如下使用make快捷方式。同样的关键字image_factory参数是QRCode类更多高级用法的一个有效地选项。
SVG
在python2.6版本必须安装lxml,因为更老的xml.etree.ElementTree 版本不能被用来创建SVG图像。
你可以创建整个的SVG或者一个SVG碎片。当建立一个完整的SVG图像时,你可以使用工厂,它联合一个路径(推荐使用,并且脚本默认使用)或者单纯一个工厂创建一个简单的矩形。
>从你的命令行:
- qr --factory=svg-path "Some text" > test.svgqr
- --factory=svg "Some text" > test.svgqr
- --factory=svg-fragment "Some text" > test.svg
复制代码
或者在python:
- import qrcodeimport
- qrcode.image.svgif
- method == 'basic': # Simple factory, just a set of rects.
- factory = qrcode.image.svg.SvgImageelif
- method == 'fragment': # Fragment factory (also just a set of rects)
- factory = qrcode.image.svg.SvgFragmentImageelse: # Combined path factory, fixes white space that may occur when zooming
- factory = qrcode.image.svg.SvgPathImageimg = qrcode.make('Some data here', image_factory=factory)
复制代码
两个其他有关系工厂函数是可用的,一样的起作用,同样地填充SVG的背景为白色:
qrcode.image.svg.SvgFillImageqrcode.image.svg.SvgPathFillImage
纯净python PNG
安装下列两个包:
- pip install git+git://github.com/ojii/pymaging.git#egg=pymaging
- pip install git+git://github.com/ojii/pymaging-png.git#egg=pymaging-png
复制代码
>从你的命令行:
qr --factory=pymaging "Some text" > test.png
或者在python里:
- import qrcodefrom
- qrcode.image.pure
- import PymagingImage
- img = qrcode.make('Some data here', image_factory=PymagingImage)
复制代码
变更日志
版本5.3
- 修复QR版本15不完整的块表。感谢Rodrigo Queiro的报告和 Jacob Welsh的调查报告和修复。
- 避免非MS平台上的不必要附属物,感谢Noah Vesely
- 使 BaseImage.get_image() 确实起作用
....之后的变更每天补充一点
|
|