打印 上一主题 下一主题

python库---qrcode 5.3文档翻译

[复制链接]

33

主题

55

帖子

335

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
335
跳转到指定楼层
楼主
3371 0 rodster 发表于 2017-1-28 01:48:55
qrcode 5.3
二维码图形生成器

纯净的python二维码生成器

这个模块使用了图形库,默认是Python Imaging Library (PIL) 生成二维码


推荐使用pillow分支而不是PIL自身。

什么是一个二维码?
一个二维码(快速响应码)是一个二维的象形文字的代码,由于快速可读性和比较大的容量存储(译者注,这个容量存储应该是指数学概念上的。)而被使用。

黑色模块的码子正方形排列在白色背景上。被编码的信息能由任何种类的信息组成(例如,二进制、字母数字或汉字符号)

用法
>从命令行使用已安装qr脚本代码如下:qr "Some text" > test.png

或者在python中,使用make快捷函数:


  1. import qrcodeimg = qrcode.make('Some data here')
复制代码

高级用法
使用QRCode类进行更多的控制。例如:
  1. import qrcodeqr = qrcode.QRCode(    version=1,    error_correction=qrcode.constants.ERROR_CORRECT_L,    box_size=10,    border=4,)
  2. qr.add_data('Some data')
  3. qr.make(fit=True)
  4. 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图像时,你可以使用工厂,它联合一个路径(推荐使用,并且脚本默认使用)或者单纯一个工厂创建一个简单的矩形。
>从你的命令行:
  1. qr --factory=svg-path "Some text" > test.svgqr
  2. --factory=svg "Some text" > test.svgqr
  3. --factory=svg-fragment "Some text" > test.svg
复制代码

或者在python:
  1. import qrcodeimport
  2. qrcode.image.svgif
  3. method == 'basic':    # Simple factory, just a set of rects.   
  4. factory = qrcode.image.svg.SvgImageelif
  5. method == 'fragment':    # Fragment factory (also just a set of rects)   
  6. factory = qrcode.image.svg.SvgFragmentImageelse:    # Combined path factory, fixes white space that may occur when zooming   
  7. factory = qrcode.image.svg.SvgPathImageimg = qrcode.make('Some data here', image_factory=factory)
复制代码


两个其他有关系工厂函数是可用的,一样的起作用,同样地填充SVG的背景为白色:
qrcode.image.svg.SvgFillImageqrcode.image.svg.SvgPathFillImage
纯净python PNG
安装下列两个包:
  1. pip install git+git://github.com/ojii/pymaging.git#egg=pymaging
  2. pip install git+git://github.com/ojii/pymaging-png.git#egg=pymaging-png
复制代码

>从你的命令行:
qr --factory=pymaging "Some text" > test.png
或者在python里:
  1. import qrcodefrom
  2. qrcode.image.pure
  3. import PymagingImage
  4. img = qrcode.make('Some data here', image_factory=PymagingImage)
复制代码

变更日志
版本5.3
  • 修复QR版本15不完整的块表。感谢Rodrigo Queiro的报告和 Jacob Welsh的调查报告和修复。
  • 避免非MS平台上的不必要附属物,感谢Noah Vesely
  • 使 BaseImage.get_image() 确实起作用

....之后的变更每天补充一点








您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1、本版所有言论和图片纯属会员个人意见,与本论坛立场无关
2、本站所有资源,可用于网站安全检测,不得使用非法,使用非法与本站无关
3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和云夕阁论坛的同意
4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
5、如本版块文章侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
6、云夕阁论坛管理员和版主有权不事先通知发贴者而删除本文
  • 今日
    0
  • 主题
    3

推荐阅读

Archiver|手机版|小黑屋| 云夕阁 ( 湘ICP备16017785号-2 )     

返回顶部 返回列表