欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解Python如何生成優(yōu)雅的二維碼

 更新時(shí)間:2022年09月07日 08:38:18   作者:ZackSock  
二維碼作為一種信息傳遞的工具,在當(dāng)今社會(huì)發(fā)揮了重要作用。從手機(jī)用戶登錄到手機(jī)支付,生活的各個(gè)角落都能看到二維碼的存在。下面我們就來(lái)看看Python如何生成一個(gè)優(yōu)雅的二維碼吧

二維碼作為一種信息傳遞的工具,在當(dāng)今社會(huì)發(fā)揮了重要作用。從手機(jī)用戶登錄到手機(jī)支付,生活的各個(gè)角落都能看到二維碼的存在,那么我們?nèi)绾巫约荷梢粋€(gè)二維碼呢?如果使用Python,我們可以很快的生成一個(gè)二維碼,我們可以自己定義二維碼包含的信息。這些信息可以是文字、圖片,也可以是網(wǎng)站。下面我們就來(lái)看看如何生成一個(gè)二維碼。

一、使用MyQR生成二維碼

生成二維碼的方式多種多樣,我們先來(lái)看看使用MyQR模塊如何生成一個(gè)二維碼。

(1)模塊安裝

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

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ myqr

安裝完成后我們就可以開(kāi)始使用了。先生成一個(gè)最簡(jiǎn)單的二維碼:

from MyQR import myqr        # 注意區(qū)分大小寫
myqr.run(words='Do not go gentle into that good night!')    # 生成二維碼

在我們運(yùn)行這個(gè)程序后,py文件同目錄下會(huì)生成圖片qrcode.png,該圖片就是我們的二維碼圖片,掃出來(lái)就是我們上面設(shè)置的文本信息了。

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

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

from MyQR import myqr
myqr.run(
    words='http://www.baidu.com',    # 包含信息
    picture='lbxx.jpg',            # 背景圖片
    colorized=True,            # 是否有顏色,如果為False則為黑白
    save_name='code.png'    # 輸出文件名
)

生成二維碼效果如下:

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

二、使用qrcode生成二維碼

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

(1)模塊安裝

這里同樣使用pip安裝,我們?cè)诿钚写翱趫?zhí)行下列語(yǔ)句:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ qrcode

安裝完成后我們就可以開(kāi)始生成我們的第一個(gè)二維碼了:

import qrcode
img = qrcode.make('http://www.baidu.com')
img.save('qrcode.jpg')

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

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

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

from qrcode import QRCode
qr = QRCode()    # 創(chuàng)建二維碼對(duì)象
qr.add_data('http://www.baidu.com')    # 設(shè)置二維碼數(shù)據(jù)
img = qr.make_image()    # 創(chuàng)建二維碼圖片
img.save('qrcode.png')    # 保存二維碼圖片

通過(guò)這種方式我們同樣可以生成一個(gè)二維碼,當(dāng)然我們還可以豐富一下:

import qrcode
qr = qrcode.QRCode(
    version=5,        # 二維碼的大小,取值1-40
    box_size=10,    # 二維碼最小正方形的像素?cái)?shù)量
    error_correction=qrcode.constants.ERROR_CORRECT_H,    # 二維碼的糾錯(cuò)等級(jí)
    border=5    # 白色邊框的大小
)
qr.add_data('http://www.baidu.com')    # 設(shè)置二維碼數(shù)據(jù)
img = qr.make_image()    # 創(chuàng)建二維碼圖片
img.save('qrcode.png')    # 保存二維碼

其中version包含了大小信息,當(dāng)設(shè)置為1時(shí),生成一個(gè)12x12大小的二維碼,單位為box_size個(gè)像素。

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

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

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

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

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

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

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ pyzbar

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

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ opencv-python

之后就可以開(kāi)始識(shí)別二維碼了:

import cv2
from pyzbar import pyzbar
im = cv2.imread('qrcode.png')    # 讀取二維碼
data = pyzbar.decode(im)    # 解析二維碼
print(data)

我們使用如下圖片作為測(cè)試:

其中包含的信息為http://www.baidu.com,我們看一下輸出結(jié)果:

[Decoded(data=b'http://www.baidu.com', 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)])]

顯然是我們看不懂的東西,但是我們?cè)诶锩婵吹搅薶ttp://www.baidu.com的字樣,我們可以通過(guò)如下方式解析出內(nèi)容:

import cv2
from pyzbar import pyzbar
im = cv2.imread('qrcode.png')    # 讀取二維碼
data = pyzbar.decode(im)    # 解析二維碼
text = data[0].data.decode('utf-8')    # 解析數(shù)據(jù)
print(text)

輸出結(jié)果如下:

http://www.baidu.com

這樣我們就算是將內(nèi)容解析出來(lái)了。

到此這篇關(guān)于詳解Python如何生成優(yōu)雅的二維碼的文章就介紹到這了,更多相關(guān)Python生成二維碼內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用Python實(shí)現(xiàn)3D曲線擬合

    使用Python實(shí)現(xiàn)3D曲線擬合

    曲線擬合是數(shù)據(jù)分析和數(shù)學(xué)建模領(lǐng)域中廣泛使用的技術(shù),它涉及到尋找最接近一組數(shù)據(jù)點(diǎn)的數(shù)學(xué)函數(shù)的過(guò)程,本文我們將討論如何使用SciPy庫(kù)在Python中執(zhí)行3D曲線擬合,感興趣的小伙伴可以了解下
    2023-11-11
  • opencv 形態(tài)學(xué)變換(開(kāi)運(yùn)算,閉運(yùn)算,梯度運(yùn)算)

    opencv 形態(tài)學(xué)變換(開(kāi)運(yùn)算,閉運(yùn)算,梯度運(yùn)算)

    這篇文章主要介紹了opencv 形態(tài)學(xué)變換(開(kāi)運(yùn)算,閉運(yùn)算,梯度運(yùn)算),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • python 命令行傳入?yún)?shù)實(shí)現(xiàn)解析

    python 命令行傳入?yún)?shù)實(shí)現(xiàn)解析

    這篇文章主要介紹了python 命令行傳入?yún)?shù)實(shí)現(xiàn)解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Dockerfile構(gòu)建一個(gè)Python Flask 鏡像

    Dockerfile構(gòu)建一個(gè)Python Flask 鏡像

    這篇文章主要介紹了Dockerfile構(gòu)建一個(gè)Python Flask 鏡像,對(duì)正在學(xué)習(xí)的你有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-01-01
  • Python的__builtin__模塊中的一些要點(diǎn)知識(shí)

    Python的__builtin__模塊中的一些要點(diǎn)知識(shí)

    這篇文章主要介紹了Python的__builtin__模塊中的一些要點(diǎn)知識(shí),是Python學(xué)習(xí)中的基礎(chǔ),需要的朋友可以參考下
    2015-05-05
  • 簡(jiǎn)單文件操作python 修改文件指定行的方法

    簡(jiǎn)單文件操作python 修改文件指定行的方法

    使用python進(jìn)行簡(jiǎn)略的文件讀寫
    2013-05-05
  • python實(shí)現(xiàn)查詢IP地址所在地

    python實(shí)現(xiàn)查詢IP地址所在地

    本文給大家分享的是使用Python實(shí)現(xiàn)根據(jù)ip138的API查詢IP的地理位置的代碼,非常的實(shí)用,推薦給大家,有需要的小伙伴可以參考下。
    2015-03-03
  • Python將DataFrame的某一列作為index的方法

    Python將DataFrame的某一列作為index的方法

    下面小編就為大家分享一篇Python將DataFrame的某一列作為index的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • 使用Python初始化多維列表遇到的問(wèn)題詳解

    使用Python初始化多維列表遇到的問(wèn)題詳解

    這篇文章主要介紹了使用Python初始化多維列表遇到的問(wèn)題詳解,二維列表是將其他列表作為它的元素的列表,前一章介紹了如何使用一個(gè)列表來(lái)存儲(chǔ)線性的元素集合,可以使用列表來(lái)存儲(chǔ)二維數(shù)據(jù),需要的朋友可以參考下
    2023-11-11
  • 解讀Python腳本的常見(jiàn)參數(shù)獲取和處理方式

    解讀Python腳本的常見(jiàn)參數(shù)獲取和處理方式

    這篇文章主要介紹了Python腳本的常見(jiàn)參數(shù)獲取和處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09

最新評(píng)論