日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Python玩轉(zhuǎn)二維碼,炫酷!

二維碼(Quick Response Code)幾乎已經(jīng)滲透到我們?nèi)粘I畹拿恳粋€(gè)角落。本文分享如何使用Python生成各種炫酷二維碼。

二維碼(Quick Response Code)幾乎已經(jīng)滲透到我們?nèi)粘I畹拿恳粋€(gè)角落。

二維碼是 1994 年發(fā)明的一種矩陣條形碼。

實(shí)際上,二維碼通常包含指向網(wǎng)站或應(yīng)用程序的定位器、標(biāo)識(shí)符或跟蹤器的數(shù)據(jù)。

二維碼使用四種標(biāo)準(zhǔn)化編碼模式(數(shù)字、字母數(shù)字、字節(jié)/二進(jìn)制、漢字)來高效存儲(chǔ)數(shù)據(jù)。

二維碼的結(jié)構(gòu)

從上圖可以看出,二維碼結(jié)構(gòu)整體分為功能模式和編碼區(qū)。功能模式細(xì)分為:空白區(qū)、位置探測圖形、分隔符、圖形定位、圖形矯正;而編碼區(qū)又細(xì)分為:格式信息、版本信息、數(shù)據(jù)、糾錯(cuò)碼字。我們簡單了解一下各部分的作用:

  • 空白區(qū):留空,無需做任何處理
  • 位置探測圖形:輔助掃描軟件定位二維碼
  • 分隔符:區(qū)分功能模式和編碼區(qū)
  • 圖形定位:指示標(biāo)記的密度并確定坐標(biāo)系
  • 圖形矯正:校正圖形的數(shù)量和位置
  • 格式信息:存儲(chǔ)格式化數(shù)據(jù)信息
  • 版本信息:二維碼規(guī)格,40個(gè)規(guī)格的二維碼符號(hào)矩陣
  • 數(shù)據(jù)和糾錯(cuò)碼字:實(shí)際保存的二維碼信息和糾錯(cuò)碼字

本文用到的第三方庫:qrcode, myqr, pillow, zxing

首先在終端中安裝這些庫:

pip install qrcode myqr pillow zxing

python中的二維碼

import qrcode
data = 'https://www.baidu.com'
image = qrcode.make(data=data)
image.show()
image.save("baidu.png")

生成的二維碼如下圖:

進(jìn)階

  • 大小和顏色
import qrcode


def plotQR(box_size, border, fill_color,back_color):
    qr = qrcode.QRCode(
        versinotallow=2,
        error_correctinotallow=qrcode.constants.ERROR_CORRECT_L,
        box_size=box_size,
        border=border,
    )
    data = 'https://www.baidu.com/'
    qr.add_data(data=data)
    qr.make(fit=True)
    image = qr.make_image(fill_color=fill_color , back_color=back_color)
    fn = f"baidu_{box_size}_{border_size}_{fill_color}_{back_color}.png"
    image.save(fn)
    return fn
exampleList = [
    (15,3,'blue','white'),
    (15,3,'red','green'),
    (10,2,'yellow','grey'),
    (5,1,'pink','black'),
]
[plotQR(*arg) for arg in exampleList]

結(jié)果如下:

baidu_15_3_blue_white.png:

baidu_15_3_red_green.png:

baidu_10_2_yellow_grey.png:

baidu_5_1_pink_black.png

  • 背景圖

myqr是另外一個(gè)二維碼相關(guān)的庫,它可以生成帶背景圖的二維碼。

from MyQR import myqr

myqr.run(
    words="https://baidu.com/",
    versinotallow=1,
    picture="bg.png",
    colorized=True,
    save_name="baidu_bg.png",
)

上圖生成的二維碼:

當(dāng)然把背景圖換成動(dòng)態(tài)圖(gif),也可以生成動(dòng)態(tài)的二維碼。

識(shí)別二維碼圖片

上面是生成二維碼的示例,下面是識(shí)別二維碼的示例:我們來驗(yàn)證下是否能成功!

# 方法一

import zxing
reader = zxing.BarCodeReader()
barcode = reader.decode("001.png")
print(barcode.parsed)

# 方法二
import cv2
import os
img = cv2.imread("001.png")
# cv2.imshow("imge", img)
det = cv2.QRCodeDetector()
val, pts, st_code = det.detectAndDecode(img)
print(val)

總結(jié)

二維碼無處不在,你的二維碼是否讓人眼前一亮?趕緊告訴你的小伙伴python可以創(chuàng)建讀取二維碼吧!


當(dāng)前名稱:Python玩轉(zhuǎn)二維碼,炫酷!
瀏覽地址:http://www.dlmjj.cn/article/dhpsses.html