天天看點

python生成二維碼

python生成二維碼

二維碼又稱QR Code,QR全稱Quick Response,是一個近幾年來移動裝置上超流行的一種編碼方式,它比傳統的Bar Code條形碼能存更多的資訊,也能表示更多的資料類型:比如:字元,數字,日文,中文等等。

二維碼一共有40個Version,Version 規定了二維碼的尺寸,Version 1是21 x 21的矩陣,Version 2是 25 x 25的矩陣,Version 3是29x29的尺寸,每增加一個version,就會增加4的尺寸,公式是:(V-1)x4 + 21(V是版本号) 最高Version 40,(40-1)*4+21 = 177,是以最高是177 x 177 的正方形。

QR碼從360°任一方向均可快速讀取。其奧秘就在于QR碼中的3處定位圖案,可以幫助QR碼不受背景樣式的影響,實作快速穩定的讀取。

二維碼中有四種級别的糾錯(Error Correction Code Level),這就是為什麼二維碼有殘缺還能掃出來,以及為什麼有人在二維碼的中心位置加入圖示還能掃出來。

錯誤修正容量

L水準

7%的字碼可被修正

M水準

15%的字碼可被修正

Q水準

25%的字碼可被修正

H水準

30%的字碼可被修正

例如,需要輸入的資料為100位的數字時,通過以下步驟來標明。

python生成二維碼

二維碼中可以寫入任何内容,包括文字、網址連結等。

qrcode子產品安裝很簡單:

下面的代碼生成一個二維碼,掃描和會顯示文字“川普大統領是懂王!”:

python生成二維碼

也可以在二維碼中寫入網站連結,掃描後會自動跳轉到該網站:

python生成二維碼

qrcode生成二維碼還可以做更多定制:

python生成二維碼

由于二維碼有糾錯功能,還可以在二維碼中間貼上圖像(類似于微信二維碼),可以通過PIL庫的img.paste函數實作。

python生成二維碼

myqr依賴于imageio,隻支援python3:

生成帶圖檔的二維碼,此為彩色圖檔代碼,需要黑白圖檔就去掉參數colorized=True:

python生成二維碼

圖檔還可以設定為動圖,也可以對二維碼做更多定制:

python生成二維碼

感興趣的請關注微信公衆号Video Coding

python生成二維碼