詳解Python如何生成優(yōu)雅的二維碼_第1頁
詳解Python如何生成優(yōu)雅的二維碼_第2頁
詳解Python如何生成優(yōu)雅的二維碼_第3頁
詳解Python如何生成優(yōu)雅的二維碼_第4頁
詳解Python如何生成優(yōu)雅的二維碼_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第詳解Python如何生成優(yōu)雅的二維碼目錄一、使用MyQR生成二維碼(1)模塊安裝(2)生成一個圖像二維碼二、使用qrcode生成二維碼(1)模塊安裝(2)更準確的生成二維碼(3)讀取二維碼中的數(shù)據(jù)二維碼作為一種信息傳遞的工具,在當今社會發(fā)揮了重要作用。從手機用戶登錄到手機支付,生活的各個角落都能看到二維碼的存在,那么我們?nèi)绾巫约荷梢粋€二維碼呢?如果使用Python,我們可以很快的生成一個二維碼,我們可以自己定義二維碼包含的信息。這些信息可以是文字、圖片,也可以是網(wǎng)站。下面我們就來看看如何生成一個二維碼。

一、使用MyQR生成二維碼

生成二維碼的方式多種多樣,我們先來看看使用MyQR模塊如何生成一個二維碼。

(1)模塊安裝

在開始使用之前我們需要先安裝該模塊。這里使用pip直接下載,這里選用的是國內(nèi)的源:

pipinstall-i/simple/myqr

安裝完成后我們就可以開始使用了。先生成一個最簡單的二維碼:

fromMyQRimportmyqr#注意區(qū)分大小寫

myqr.run(words='Donotgogentleintothatgoodnight!')#生成二維碼

在我們運行這個程序后,py文件同目錄下會生成圖片qrcode.png,該圖片就是我們的二維碼圖片,掃出來就是我們上面設置的文本信息了。

(2)生成一個圖像二維碼

我們?nèi)粘I钪械亩S碼都比較單調(diào),有純二維碼,整個二維碼只有黑白方塊;也有帶圖片的二維碼,通常是在二維碼中心放置一個圖片,而我們現(xiàn)在要做的是一個整體是一張圖片的二維碼。也就是將一張圖片作為背景。這種二維碼實現(xiàn)起來也非常簡單:

fromMyQRimportmyqr

myqr.run(

words='',#包含信息

picture='lbxx.jpg',#背景圖片

colorized=True,#是否有顏色,如果為False則為黑白

save_name='code.png'#輸出文件名

生成二維碼效果如下:

可以看到,這里我們二維碼包含的信息是一個網(wǎng)址,這個時候我們掃描二維碼會直接跳轉(zhuǎn)網(wǎng)頁。代碼一樣我們只需要將picture參數(shù)設置為一張動圖,另外輸出文件后綴改為gif即可:

二、使用qrcode生成二維碼

qrcode同樣是一個便捷的工具,使用該模塊我們也能夠很快的實現(xiàn)二維碼的生成。

(1)模塊安裝

這里同樣使用pip安裝,我們在命令行窗口執(zhí)行下列語句:

pipinstall-i/simple/qrcode

安裝完成后我們就可以開始生成我們的第一個二維碼了:

importqrcode

img=qrcode.make('')

img.save('qrcode.jpg')

在我們調(diào)用save方法后,項目下就會生成一張qrcode.png圖片,該圖片就是我們的二維碼圖片,我們掃出來同樣是直接跳轉(zhuǎn)網(wǎng)頁。

(2)更準確的生成二維碼

除了上面的方式,我們還可以通過QRCode類來生成二維碼,這種方式我們可以控制二維碼的更多信息:

fromqrcodeimportQRCode

qr=QRCode()#創(chuàng)建二維碼對象

qr.add_data('')#設置二維碼數(shù)據(jù)

img=qr.make_image()#創(chuàng)建二維碼圖片

img.save('qrcode.png')#保存二維碼圖片

通過這種方式我們同樣可以生成一個二維碼,當然我們還可以豐富一下:

importqrcode

qr=qrcode.QRCode(

version=5,#二維碼的大小,取值1-40

box_size=10,#二維碼最小正方形的像素數(shù)量

error_correction=qrcode.constants.ERROR_CORRECT_H,#二維碼的糾錯等級

border=5#白色邊框的大小

qr.add_data('')#設置二維碼數(shù)據(jù)

img=qr.make_image()#創(chuàng)建二維碼圖片

img.save('qrcode.png')#保存二維碼

其中version包含了大小信息,當設置為1時,生成一個12x12大小的二維碼,單位為box_size個像素。

我們可以將version設置為None,并添加一句qr.make(fit=True),這樣程序會自動生成大小合適的二維碼。

另外error_correction為糾錯等級的設置,糾錯等級是什么這就是關(guān)于二維碼本身的知識了。

ERROR_CORRECT_L:大約7%或更少的錯誤能被糾正。ERROR_CORRECT_M(默認):大約15%或更少的錯誤能被糾正。ROR_CORRECT_H:大約30%或更少的錯誤能被糾正。

上面是可以供我們選擇的幾個內(nèi)置常數(shù)。

(3)讀取二維碼中的數(shù)據(jù)

上面我們一直在講如何生成二維碼,但是我們?nèi)吮旧硎菬o法讀取二維碼中的信息,這就要借助我們的設備了。在Python中,我們可以通過pyzbar模塊來識別二維碼的識別,當然還有其它方法,這里我們使用pyzbar看看應該如何識別二維碼,首先我們需要安裝模塊:

pipinstall-i/simple/pyzbar

另外我們需要安裝opencv模塊:

pipinstall-i/simple/opencv-python

之后就可以開始識別二維碼了:

importcv2

frompyzbarimportpyzbar

im=cv2.imread('qrcode.png')#讀取二維碼

data=pyzbar.decode(im)#解析二維碼

print(data)

我們使用如下圖片作為測試:

其中包含的信息為,我們看一下輸出結(jié)果:

[Decoded(data=b,type=QRCODE,rect=Rect(left=5,top=5,width=29,height=29),polygon=[Point(x=5,y=5),Point(x=5,y=34),Point(x=34,y=34),Point(x=34,y=5)])]

顯然是我們看不懂的東西,但是我們在里面看到了的字樣,我們可以通過如下方式解析出內(nèi)容:

importcv2

frompyzbarimportpyzbar

im=cv2.imre

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論