陳新龍
二維碼又稱二維條碼,是用某種特定的幾何圖形按一定規(guī)律在平面(二維方向上)分布的、黑白相間的、記錄數(shù)據(jù)符號信息的圖形。而不同種類的二維碼遵循的規(guī)律就是碼制,常用的碼制有:Data Matrix、Maxi Code、Aztec、QR Code、Vericode、PDF417、Ultracode、Code 49、Code 16K等。QR Code是一種移動設(shè)備上流行的二維碼編碼方式,它比傳統(tǒng)的條形碼能存更多的信息,也能表示更多的數(shù)據(jù)類型。
在日常生活中二維碼隨處可見,那么大家會不會好奇,二維碼是怎么制作的?二維碼會不會有一天被用完呢?我們是否自己也可以制作一個(gè)屬于我們自己的二維碼?在日常生活中我們最常見的就是黑白二維碼,當(dāng)然不僅僅只存在黑白二維碼還有彩色二維碼和動態(tài)二維碼,今天我們可以用Python軟件自己獨(dú)立制作一個(gè)二維碼,一起來看看吧。
首先在Python環(huán)境中安裝第三方庫MYQR,這個(gè)庫是專門用來制作個(gè)性二維碼的,只需要簡簡單單兩三行代碼,就可以像變魔法一樣繪制出一個(gè)二維碼。MYQR庫中包含了很多參數(shù),如words、version、level、picture、colorized等,其中,words為非默認(rèn)參數(shù),其余幾個(gè)為默認(rèn)參數(shù)。在輸入時(shí)必須為words參數(shù)賦值,其他參數(shù)如果沒有賦值會自動按照庫中的默認(rèn)值運(yùn)行。
words參數(shù)含義是二維碼指向鏈接,可以將句子或者鏈接作為參數(shù)輸入。
version的含義是邊長,它的類型是整數(shù),用于控制邊長,范圍是1到40,數(shù)字越大邊長越大,默認(rèn)邊長是取決于你輸入的信息的長度和使用的糾錯(cuò)等級。
level用來控制二維碼糾錯(cuò)水平,范圍是L:約可糾錯(cuò)7%的數(shù)據(jù)碼字、M糾錯(cuò)15%、Q糾錯(cuò)25%、H糾錯(cuò)30%,默認(rèn)為H最高。
picture參數(shù)含義是結(jié)合圖片,將QR二維碼圖像與一張同目錄下的圖片相結(jié)合,產(chǎn)生一張黑白圖片作為背景。也可以通過colorized選項(xiàng)修改成彩色背景。
首先我們來制作一張靜態(tài)二維碼:
from MyQR import myqr
myqr.run(words="welcome to program world")
二維碼的其他參數(shù)都不需要設(shè)置就能在同目錄下生成一張qrcode.png的圖片了。
我在words里添加了內(nèi)容“welcome to our program world”運(yùn)行代碼后會產(chǎn)生一張二維碼的圖片,通過手機(jī)微信掃一掃或者電腦上識別二維碼的程序就可以解碼讀出包含的文字內(nèi)容了(圖1)。
在運(yùn)行結(jié)果myqr.run()里填寫二維碼產(chǎn)生的內(nèi)容可以是文字也可以是鏈接。
如果覺得簡單的黑白二維碼太過于普通,還可以在文件夾中準(zhǔn)備好比較有特色的背景圖片或者gif動圖。通過修改picture和colorized參數(shù)便可以實(shí)現(xiàn)彩色二維碼和動態(tài)二維碼的圖片,代碼如圖2。
MyQR庫讓我們充分感受到了Python的友好和強(qiáng)大,日后我也會繼續(xù)和大家分享更多Python的知識與技巧,與大家一起學(xué)習(xí)更多的新知識(圖3)。