真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

使用Python怎么生成一個(gè)二維碼并解析-創(chuàng)新互聯(lián)

這篇文章給大家介紹使用Python怎么生成一個(gè)二維碼并解析,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

文成ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)的ssl證書(shū)銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書(shū)合作)期待與您的合作!

生成二維碼

生成二維碼的話,python有兩個(gè)第三方模塊:qrcode和MyQR可以幫我我們生成二維碼,下面來(lái)看一下這兩個(gè)模塊的用法。

qrcode

生成比較簡(jiǎn)單的二維碼就是,當(dāng)我們掃描的時(shí)候,會(huì)自動(dòng)跳轉(zhuǎn)到某個(gè)頁(yè)面。

import qrcode
 
# 調(diào)用QRCode,可以接收以下參數(shù)
"""
version: 二維碼的格子大小,可以是1到40。值越大,格子越大,一般不超過(guò)10,選擇3比較合適
error_correction: 二維碼錯(cuò)誤容許率,默認(rèn)為qrcode.constants.ERROR_CORRECT_M,容許小于 15% 的錯(cuò)誤率
         此外還有qrcode.constants.ERROR_CORRECT_L: 容許小于 7% 的錯(cuò)誤率
         qrcode.constants.ROR_CORRECT_H: 容許小于 30% 的錯(cuò)誤率
box_size: 二維碼每個(gè)小格子包含的像素?cái)?shù)量
border: 二維碼到圖片邊框的小格子數(shù),默認(rèn)值為 4         
"""
qr = qrcode.QRCode() # 事實(shí)上里面的參數(shù)我們可以都不指定,默認(rèn)會(huì)選擇一個(gè)比較合適的參數(shù)
 
# 調(diào)用add_data,指定url。
qr.add_data("https://www.baidu.com/")
# 生成二維碼圖像,顏色為藍(lán)色,背景色為粉色
img = qr.make_image(fill_color='blue', back_color='pink')
# 顯示圖像,這個(gè)會(huì)打開(kāi)一個(gè)臨時(shí)文件
img.show()
# 此外,我們還可以保存到硬盤(pán)上
img.save("1.png")
 
# 事實(shí)上,這個(gè)img實(shí)際上是通過(guò)PIL模塊得到的,可以理解為里面Image對(duì)象
# 如果你熟悉PIL模塊的話,那么你應(yīng)該知道可以將里面Image對(duì)象保存成圖片對(duì)應(yīng)的字節(jié)流
from io import BytesIO
buf = BytesIO()
img.save(buf) # 將字節(jié)保存到buf里面
with open("2.png", "wb") as f:
  f.write(buf.getvalue()) # 和直接保存為1.png是一樣的

使用Python怎么生成一個(gè)二維碼并解析

此時(shí)我們就生成了一個(gè)二維碼,當(dāng)掃描該二維碼的時(shí)候就會(huì)跳轉(zhuǎn)到百度。

另外我們?cè)赼dd_data中指定的是一個(gè)url,我們也可以不指定url,而是指定一段文字。這樣的話,當(dāng)掃描的時(shí)候就會(huì)顯示我們輸入的文字。

MyQR

MyQR也可以用來(lái)生成二維碼,但是它和qrcode相比較大的特點(diǎn)就是它可以嵌入圖片當(dāng)背景。

from MyQR import myqr
 
# 主要用到以下幾個(gè)參數(shù)
# words:文本,可以是一個(gè)鏈接,或者你想說(shuō)的話(不支持中文,很不友好)
# picture:你用到的圖片,作為背景,不然只是一個(gè)光禿禿的二維碼
# colorsize:True,表示生成彩圖
# save_name:表示生成的二維碼的名字
myqr.run(words="http://www.bilibili.com",
     picture="satori.jpg",
     colorized=True,
     save_name="bilibili.png")

使用Python怎么生成一個(gè)二維碼并解析

當(dāng)掃這個(gè)二維碼的時(shí)候,就會(huì)跳轉(zhuǎn)到bilibili。指的一提的是,這里圖片,還可以使用gif格式的動(dòng)圖,當(dāng)然生成的圖片也要是gif格式的。

解析二維碼

我們除了可以使用python生成二維碼,還可以解析二維碼,解析二維碼也有兩個(gè)模塊,一個(gè)是zxing、一個(gè)是pyzbar。

首先是zxing,不過(guò)這個(gè)模塊有點(diǎn)讓人尷尬,因?yàn)檫@個(gè)模塊調(diào)用的是java的接口。也就是說(shuō)解析二維碼的底層工作是java做的,python是負(fù)責(zé)調(diào)用,所以使用這個(gè)模塊的時(shí)候需要你本地有java環(huán)境。所以我使用我阿里云上的centos進(jìn)行測(cè)試。

>>> import zxing
>>> reader = zxing.BarCodeReader()
>>> barcode = reader.decode('bilibili.png')
>>> barcode.parsed
'http://www.bilibili.com' # 是可以解析出來(lái)的
>>>

然后看看pyzbar模塊,這個(gè)模塊就不需要java了,直接使用python即可。

import numpy as np
from PIL import Image
from pyzbar import pyzbar
 
# 讀取文件,轉(zhuǎn)成數(shù)組
im = np.array(Image.open("bilibili.png"))
print(pyzbar.decode(im))
# 返回的信息還是很多的
"""
[
   Decoded(data=b'http://www.bilibili.com',
       type='QRCODE',
       rect=Rect(left=35, top=35, width=263, height=264),
       polygon=[Point(x=35, y=35), Point(x=35, y=297), Point(x=297, y=299), Point(x=298, y=35)])
]
"""
 
# 拿到內(nèi)容
print(pyzbar.decode(im)[0].data.decode("utf-8")) # http://www.bilibili.com

關(guān)于使用Python怎么生成一個(gè)二維碼并解析就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。



新聞標(biāo)題:使用Python怎么生成一個(gè)二維碼并解析-創(chuàng)新互聯(lián)
分享路徑:http://weahome.cn/article/ccphjs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部