現在有很多二維碼的生成工具,在線的,或者安裝的軟件,都可以進行生成二維碼。今天我用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)