python qrcode 5.3 模塊文檔翻譯即補充說明

qrcode 5.3

二維碼圖像生成器

Pure Python二維碼生成器

這個模塊須要引用圖像庫,默認使用python的PIL庫去生成二維碼(沒有找到Image模塊的請安裝PIL庫)
建議使用pillow模塊而不是PIL本身

什么是二維碼

二維碼是一種用于快速閱讀和較大容量信息存儲的快速響應二維圖形代碼,通過在白色的背景上排列黑色的方塊組成,可以編碼任何種類信息的數(shù)據(jù)(例如:二進制,字母數(shù)字或者漢字符號等等)

安裝qrcode模塊
pip install qrcode
用法

直接通過命令行使用已經(jīng)安裝的qr腳本來生成二維碼

qr "qrcode content"  > test.png

或者在python中,通過make()方法創(chuàng)建二維碼

import qrcode
img = qrcode.make('some data here')
高級用法

使用QRCode類,來對二維碼做更多控制,例如:

import qrcode

qr = qrcode.QRCode(
    version=1,                                         ## 邊長格數(shù) :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()

參數(shù)說明

  • version參數(shù) :version是范圍為[1~40]的整型參數(shù),用于控制二維碼的大小(最小值為1,表示一個大小為21 * 21的二維碼,如果想自動確定生成,那么將該值設置為none,并且設置make()方法的fit參數(shù)為True即可)
    補充說明:上面21 * 21是指橫向縱向各有21個方塊,不是指21像素;version參數(shù)每增加1,橫縱向各增加4個方塊,計算公式 : 21+(version-1) * 4
  • error_correction參數(shù) : error_correction用于控制二維碼的容錯率,qrcode模塊在中有4個可用的常量參數(shù):
ERROR_CORRECT_L     # 小于或約等于 7% 的容錯率
ERROR_CORRECT_M     # 小于或約等于 15% 的容錯率
ERROR_CORRECT_Q     # 小于或約等于 25% 的容錯率
ERROR_CORRECT_H     # 小于或約等于 30% 的容錯率
  • box_size參數(shù) : box_size是指二維碼中每個黑白方塊所的邊長的像素值
  • border參數(shù) : border用于控制二維碼的邊框為幾個box_size的長度,默認值為4,是標準規(guī)定的最小值,低于4也是可以的,建議為4
其他Image圖像工廠

你可以將二維碼圖像編碼為SVG格式,或者使用新的Pure Python PNG圖像處理器將二維碼圖像編碼為PNG格式

下面的Python示例使用make()方法用法,對于更高級的用法,可以使用image_factory()方法并設置有效的關鍵字參數(shù)

SVG

在Python2.6的版本必須安裝lxml,因為舊的xml.etree.ElementTree版本不能用于創(chuàng)建SVG圖像
你可以創(chuàng)建完整的SVG或者SVG判斷,在構建完整的SVG圖像時,可以使用組合為路徑的工廠(建議,默認為腳本),或者為創(chuàng)建一組簡單矩形的工廠
通過命令行的用法:

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:
    # 組合路徑工廠,修復進行縮放可能引起的空白區(qū)域
    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

通過命令行執(zhí)行:

qr --factory=pymaging "Some text" > test.png

或者在Python中執(zhí)行:

import qrcode
from qrcode.image.pure import PymagingImage
img = qrcode.make('Some data here', image_factory=PymagingImage)
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容