qrcode 5.3
二维码图像生成器
Pure Python二维码生成器
这个模块须要引用图像库,默认使用python的PIL库去生成二维码(没有找到Image模块的请安装PIL库)
建议使用pillow模块而不是PIL本身
什么是二维码
二维码是一种用于快速阅读和较大容量信息存储的快速响应二维图形代码,通过在白色的背景上排列黑色的方块组成,可以编码任何种类信息的数据(例如:二进制,字母数字或者汉字符号等等)
安装qrcode模块
pip install qrcode
用法
直接通过命令行使用已经安装的qr脚本来生成二维码
qr "qrcode content" > test.png
或者在python中,通过make()方法创建二维码
import qrcode
img = qrcode.make('some data here')
高级用法
使用QRCode类,来对二维码做更多控制,例如:
import qrcode
qr = qrcode.QRCode(
version=1, ## 边长格数 :21+ (version-1) * 4
error_correction=qrcode.constants.ERROR_CORRECT_L, ## 容错率 L M Q H
box_size=10, ## 单元格,方块边长像素
border=4, ## 边框像素大小 = border * box_size
)
qr.add_data('Some data')
qr.make(fit=True)
img = qr.make_image()
参数说明
-
version参数 :version是范围为[1~40]的整型参数,用于控制二维码的大小(最小值为1,表示一个大小为21 * 21的二维码,如果想自动确定生成,那么将该值设置为none,并且设置make()方法的fit参数为True即可)
补充说明:上面21 * 21是指横向纵向各有21个方块,不是指21像素;version参数每增加1,横纵向各增加4个方块,计算公式 : 21+(version-1) * 4 - error_correction参数 : error_correction用于控制二维码的容错率,qrcode模块在中有4个可用的常量参数:
ERROR_CORRECT_L # 小于或约等于 7% 的容错率
ERROR_CORRECT_M # 小于或约等于 15% 的容错率
ERROR_CORRECT_Q # 小于或约等于 25% 的容错率
ERROR_CORRECT_H # 小于或约等于 30% 的容错率
- box_size参数 : box_size是指二维码中每个黑白方块所的边长的像素值
- border参数 : border用于控制二维码的边框为几个box_size的长度,默认值为4,是标准规定的最小值,低于4也是可以的,建议为4
其他Image图像工厂
你可以将二维码图像编码为SVG格式,或者使用新的Pure Python PNG图像处理器将二维码图像编码为PNG格式
下面的Python示例使用make()方法用法,对于更高级的用法,可以使用image_factory()方法并设置有效的关键字参数
SVG
在Python2.6的版本必须安装lxml,因为旧的xml.etree.ElementTree版本不能用于创建SVG图像
你可以创建完整的SVG或者SVG判断,在构建完整的SVG图像时,可以使用组合为路径的工厂(建议,默认为脚本),或者为创建一组简单矩形的工厂
通过命令行的用法:
qr --factory=svg-path "Some text" > test.svg
qr --factory=svg "Some text" > test.svg
qr --factory=svg-fragment "Some text" > test.svg
或者使用Python:
import qrcode
import qrcode.image.svg
if method == 'basic':
# 简单工厂,仅设置为矩形s.
factory = qrcode.image.svg.SvgImage
elif method == 'fragment':
# 片段工厂,同样是仅设置为矩形s
factory = qrcode.image.svg.SvgFragmentImage
else:
# 组合路径工厂,修复进行缩放可能引起的空白区域
factory = qrcode.image.svg.SvgPathImage
img = qrcode.make('Some data here', image_factory=factory)
还有另外的两个相关工厂都可以使用,但也仅仅是将SVG图像的背景色填充为白色
qrcode.image.svg.SvgFillImage
qrcode.image.svg.SvgPathFillImage
Pure Python PNG
须要安装下面两个packages包:
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 qrcode
from qrcode.image.pure import PymagingImage
img = qrcode.make('Some data here', image_factory=PymagingImage)
网友评论