国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

Python 中怎么生成二維碼

發(fā)布時(shí)間:2021-07-27 11:45 來(lái)源:億速云 閱讀:0 作者:Leah 欄目: 編程語(yǔ)言 歡迎投稿:712375056

這篇文章給大家介紹Python 中怎么生成二維碼,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

1 二維碼

二維碼(2-dimensional bar code),是用某種特定的幾何圖形按一定規律在平面(二維方向上)分布的黑白相間的圖形記錄數據符號信息的。它能將數字、英文字母、漢字、日文字母、特殊符號(如空格,%,/ 等)、二進(jìn)制等信息記錄到一個(gè)正方形的圖片中。

因此,在轉換的過(guò)程中,離不開(kāi)編碼壓縮方式。在許多種類(lèi)的二維條碼中,常用的碼制有:Data Matrix, Maxi Code, Aztec, QR Code, Vericode, PDF417, Ultracode, Code 49, Code 16K等。

二維碼在現實(shí)生活中的應用越來(lái)與普遍,歸于功于 QR code 碼制的流行。我們常說(shuō)的二維碼就是它。所以,二維碼又被稱(chēng)為 QR code。

QR code 是一種矩陣式二維條碼(又稱(chēng)棋盤(pán)式二維條碼)。它是在一個(gè)矩形空間通過(guò)黑、白像素在矩陣中的不同分布進(jìn)行編碼。在矩陣相應元素位置上,用點(diǎn)(方點(diǎn)、圓點(diǎn)或其他形狀)的出現表示二進(jìn)制“1”,點(diǎn)的不出現表示二進(jìn)制的“0”,點(diǎn)的排列組合確定了矩陣式二維條碼所代表的意義。

2 二維碼結構

我們的目的是要使用 Python 生成 QR 碼,那我們需要先了解二維碼(QR 碼)的結構。根據標準(ISO/IEC 18004),我們可以了解到 QR 碼結構如下:

圖片來(lái)源網(wǎng)絡(luò )

1) 功能圖形
功能圖形是不參與編碼數據的區域。它包含空白區、位置探測圖形、位置探測圖形分隔符、定位圖形、校正圖形五大模塊。

  • 空白區

空白區顧名思義就是要留空白。因此,這里不能有任何圖樣或標記。這樣才能保證 QR 能被識別。

  • 位置探測圖形

這個(gè)有點(diǎn)類(lèi)似中文的“回”字。在 QR 碼中有個(gè)這樣的標識,它分別的左上、右上和左下角。作用是協(xié)助掃描軟件定位 QR 碼并轉換坐標系。我們在掃描二維碼的時(shí)候,不管是豎著(zhù)掃、橫著(zhù)掃、斜著(zhù)掃都能識別出內容,主要是它的功勞。

  • 位置探測圖形分隔符

主要作用是區分功能圖形和編碼區域。

  • 定位圖形

它由黑白間隔的各自各自組成的線(xiàn)條。主要用于指示標識密度和確定坐標系。原因是 QR 碼一種有 40 個(gè)版本,也就是說(shuō)有 40 種尺寸。每種二維碼的尺寸越大,掃描的距離就越遠。

  • 校正圖形

只有 Version 2 及以上的QR碼有校正標識。校正標識用于進(jìn)一步校正坐標系。

2) 編碼區域
編碼區域是數據進(jìn)行編碼存儲的區域。它由格式信息、版本信息、數據和糾錯碼字三部分構成。

  • 格式信息

所有尺寸的二維碼都有該信息。它存放一些格式化數據的信息,例如容錯級別、數據掩碼,和額外的自身 BCH 容錯碼。

  • 版本信息

版本信息是規定二維碼的規格。前面講到 QR 碼一共有 40 種規格的矩陣(一般為黑白色),從21x21(版本1),到177x177(版本40),每一版本符號比前一版本 每邊增加4個(gè)模塊。

  • 數據和糾錯碼

主要是存儲實(shí)際數據以及用于糾錯碼字。

3 二維碼的繪制過(guò)程

二維碼已經(jīng)是有一套國際標準,繪制二維碼過(guò)程的嚴格按照標準來(lái)執行。這個(gè)過(guò)程是比較復雜,我自己也是看了大概,然后總結出大致繪制過(guò)程。如果你想深入了解繪制細節,可以閱讀標準。

二維碼的繪制大概過(guò)程如下:
1)在二維碼的左上角、左下角、右上角繪制位置探測圖形。位置探測圖形一定是一個(gè) 7x7 的矩陣。
2)繪制校正圖形。校正圖形一定是一個(gè) 5x5 的矩陣。
3)繪制兩條連接三個(gè)位置探測圖形的定位圖形。
4)在上述圖片的基礎上,繼續繪制格式信息。
5)接著(zhù)繪制版本信息。
6)填充數據碼和糾錯碼到二維碼圖中。
7)最后是繪制蒙版圖案。因為按照上述方式填充內容,可能會(huì )出現大面積的空白或黑塊的情況,導致掃描識別會(huì )十分困難。所以需要對整個(gè)圖像與蒙版進(jìn)行蒙版操作(Masking),蒙版操作即為異或 XOR 操作。在這一步,我們可以將數據排列成各種圖片。

4 二維碼的生成

我們既然已經(jīng)了解二維碼原理,那么可以利用 Python 生成二維碼。然而網(wǎng)絡(luò )上高人比比皆是。已經(jīng)有大神編寫(xiě)了 Python 生成二維碼的第三方庫,所以我們不需要重復造輪子, 使用現成的庫即可。

我就推薦兩個(gè)庫:qrcode 和 python-qrcode。

  • qrcode

qrcode 運行在 Python 3 版本上,它可以玩出很多花樣。例如能生成以下三種二維碼圖片:普通二維碼、帶圖片的藝術(shù)二維碼(黑白與彩色)、動(dòng)態(tài)二維碼(黑白與彩色)。它比較適合直接用于生成二維碼圖片的場(chǎng)景。

安裝 qrcode 庫可以使用 pip 方式。但是該庫依賴(lài) pillow、numpy 和imageio。因此,我們需要先安裝依賴(lài)庫,再安裝 qrcode。

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。

成人AV片无码免费天天看| 四虎永久在线精品免费视频观看| 国产内射老熟女AAAA| 亚洲男女一区二区三区| 无码中文AV波多野吉衣| 日韩亚洲国产中文永久|