- 二維碼是以二維像素化形式設計的機器可讀條形碼。
- 二維碼可用於存儲一系列數據。
- 二維碼中的二維碼縮寫為快速反應。
- 二維碼是 1994 年由汽車製造商電裝浪潮的日本工程師原正弘發明的,目的是跟蹤汽車零件的運動。
- 二維碼的普及在 2010 年代後期隨着手機光學水平的提高和被廣泛接受而增加。
- 目前,二維碼正被廣泛用於各種應用,如在線支付、查看酒店菜單、共享無線密碼、獲取產品成本和其他信息等。
- 二維碼變得如此出名,以至於現在每部新智能手機都配有內置的二維碼閱讀器。
在下面的教程中,我們將學習使用 Python 編程語言生成和讀取二維碼。
那麼,讓我們開始吧。
Python 是一種編程語言,它提供了不同的模塊和包,允許我們生成二維碼。在本教程中,我們將使用二維碼包來生成代碼。
然而,為了開始使用這個包,我們必須安裝它。
我們可以使用以下命令,在 pip 安裝程序的幫助下安裝二維碼包:
語法:
$ pip install qrcode
該軟件包將作為 Python 和 pip 版本安裝在系統中。
為了檢查包是否已經正確安裝在系統中,我們可以嘗試導入包並執行程序。
安裝完成後,創建一個新的 Python 文件,並在其中鍵入以下語法。
示例:
# importing the required module
import qrcode
現在,保存該文件並在命令提示符下使用以下命令運行該文件。
語法:
$ python <file-name>.py
如果程序運行時沒有出現任何導入錯誤,則模塊安裝正確。否則,建議重新安裝軟件包,並參考其官方文檔。
現在,讓我們了解開始使用二維碼庫。
我們可以使用二維碼的 make 函數生成一個簡單的二維碼,並將數據作為其參數傳遞。
讓我們考慮下面的例子,它產生一個二維碼,上面寫着“歡迎來到 Javatpoint”。
示例:
# importing the qrcode library
import qrcode
# generating a QR code using the make() function
qr_img = qrcode.make("Welcome to Javatpoint.")
# saving the image file
qr_img.save("qr-img.jpg")
輸出:
說明:
在上面的代碼片段中,我們導入了二維碼庫,並定義了一個使用二維碼庫的 make() 函數生成二維碼的變量。然後,我們使用目錄中的 save() 函數保存了代碼。
我們可以使用智能手機來讀取上述二維碼。
注意:不要使用智能手機讀取隨機二維碼,因為它們可能包含惡意代碼/鏈接。
程序員可以使用由下表所示參數組成的二維碼對象定製二維碼:
| 沒有。 | 參數 | 描述 |
| one | 版本 | 二維碼有四十(40)種版本,用於控制二維碼的大小。版本 1 最小,而版本 40 最大。版本 1 將生成 21×21 矩陣二維碼。 |
| Two | 糾錯 | 該參數用於控制二維碼使用的糾錯。誤差修正從 7%到 30%不等,如下所示:
- error correction l: as high as 7%
- error correction m: as high as 15%
- error correction q: as high as 25%
- error correction h: as high as 30%
|
| three | 箱 _ 尺寸 | 該參數用於調節二維碼單個塊中的像素數。 |
| four | 邊框 | 此參數用於控制邊框的厚度。默認邊框為 4 像素厚。 |
我們可以使用二維碼對象的以下功能來創建二維碼。
| 沒有。 | 功能 | 描述 |
| one | add_data() | 我們可以將二維碼的內容作為參數傳遞給這個函數。 |
| Two | make() | 如果我們不確定使用哪個版本的二維碼,我們可以通過以下方式自動設置版本:
- Set the version parameter to none, and.
- Set fit parameter of make () function to true.
|
| three | make_image() | 該功能用於生成二維碼。我們也可以藉助填充 _ 顏色和背景 _ 顏色參數來設置二維碼的填充顏色和背景顏色。 |
讓我們考慮下面的例子,以便生成一個指向 Python 教程的二維碼。
示例:
# importing the qrcode module
import qrcode
# creating a QRCode object
obj_qr = qrcode.QRCode(
version = 1,
error_correction = qrcode.constants.ERROR_CORRECT_L,
box_size = 10,
border = 4,
)
# using the add_data() function
obj_qr.add_data("https://www.javatpoint.com/python-tutorial")
# using the make() function
obj_qr.make(fit = True)
# using the make_image() function
qr_img = obj_qr.make_image(fill_color = "cyan", back_color = "black")
# saving the QR code image
qr_img.save("qr-img1.png")
輸出:
說明:
在上面的代碼片段中,我們已經導入了二維碼庫。然後我們創建了一個 T4 二維碼庫的二維碼類的實例。我們使用了不同的參數來定製二維碼。然後,我們使用 add_data() 函數來包含二維碼的信息。我們還使用了 make() 和 make_image() 函數來生成二維碼圖像。最後,我們使用 save() 功能將圖像文件保存在目錄中。
我們將利用 OpenCV 庫讀取二維碼。如果系統中沒有安裝軟件包,我們可以使用以下命令,以便使用 pip 安裝程序安裝它:
語法:
$ pip install cv2
一旦安裝完成,我們就可以進入二維碼的解碼部分。為了解碼代碼,我們將使用 OpenCV 的二維碼檢測器對象的檢測和解碼功能。
讓我們考慮相同的代碼片段。
示例:
# importing the OpenCV library
import cv2
# reading the image
qr_img = cv2.imread("qr-img1.png")
# using the QRCodeDetector() function
qr_det = cv2.QRCodeDetector()
# using the detectAndDecode() function
val, pts, st_code = qr_det.detectAndDecode(qr_img)
# printing the value
print("Information:", val)
輸出:
Information: https://www.javatpoint.com/python-tutorial
說明:
在上面的代碼片段中,我們已經導入了 cv2 庫。然後,我們使用 imread() 功能從目錄中讀取圖像,並使用qrcodedector()功能檢測圖像中的二維碼。然後,我們使用了檢測和解碼()功能,並為用戶打印了該值。
因此,detectanddescode函數返回二維碼的內容,方框角的坐標,二值化二維碼。
原創文章,作者:Z0EMN,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/126628.html