使用Python的庫qrcode生成二維碼


現在有很多二維碼的生成工具,在線的,或者安裝的軟件,都可以進行生成二維碼。今天我用Python的qrcode庫生成二維碼。需要預先安裝  Image

安裝

用pip安裝

# pip install Image
pip install qrcode

使用源碼安裝

git clone git@github.com:lincolnloop/python-qrcode.git cd python-qrcode python setup.py install

查看安裝信息

pip show qrcode

命令行

qrcode提供了生成二維碼的命令,這個很符合程序員裝逼的風格。

qr 'Some data' > test.png

我上傳的二維碼就是用這個命令生成的

 
我的二維碼

代碼生成

首先需要導入qrcode模塊,然后調用make方法,會生成一個圖片對象,調用圖片對象
的save方法就可以將生成的二維碼保存下來了。

import qrcode
img = qrcode.make("掃一掃需要展示的信息")
img.save("xinxing.png")

更多的設置

上面兩種方式都是按照qrcode默認的方式生成二維碼,如果我們希望生成不同尺寸的二維碼就需要使用QRCode類了。

import qrcode
qr = qrcode.QRCode(
    version=1,
    error_correction=qrcode.constants.ERROR_CORRECT_L,
    box_size=10,
    border=4,
)
qr.add_data('掃一掃需要展示的信息')
qr.make(fit=True)

img = qr.make_image()
img.save('xinxingzhao.png')

version 表示二維碼的版本號,二維碼總共有1到40個版本,最小的版本號是1,對應的尺寸是21×21,每增加一個版本會增加4個尺寸。這里說的尺寸不是只生成圖片的大小,而是值二維碼的長寬被平均分為多少份。

error_correction指的是糾錯容量,這就是為什么二維碼上面放一個小圖標也能掃出來,糾錯容量有四個級別,分別是

  • ERROR_CORRECT_L L級別,7%或更少的錯誤能修正

  • ERROR_CORRECT_M M級別,15%或更少的錯誤能修正,也是qrcode的默認級別

  • ERROR_CORRECT_Q Q級別,25%或更少的錯誤能修正

  • ERROR_CORRECT_H H級別,30%或更少的錯誤能修正

box_size 指的是生成圖片的像素

border 表示二維碼的邊框寬度,4是最小值

生成其他類型的二維碼

我們可以將二維碼轉化為SVG(矢量圖),命令行的方式:

qr --factory=svg-path "xinxingzhao" > xinxingzhao.svg
qr --factory=svg "xinxingzhao" > xinxingzhao.svg
qr --factory=svg-fragment "xinxingzhao" > xinxingzhao.svg

使用python代碼的方式:

import qrcode
import qrcode.image.svg

if method == 'basic':
    # Simple factory, just a set of rects.
    factory = qrcode.image.svg.SvgImage
elif method == 'fragment':
    # Fragment factory (also just a set of rects)
    factory = qrcode.image.svg.SvgFragmentImage
else:
    # Combined path factory, fixes white space that may occur when zooming
    factory = qrcode.image.svg.SvgPathImage

img = qrcode.make('xinxingzhao', image_factory=factory)

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM