使用 Python 生成二維碼

  1. 二維碼是以二維像素化形式設計的機器可讀條形碼。
  2. 二維碼可用於存儲一系列數據。
  3. 二維碼中的二維碼縮寫為快速反應。
  4. 二維碼是 1994 年由汽車製造商電裝浪潮的日本工程師原正弘發明的,目的是跟蹤汽車零件的運動。
  5. 二維碼的普及在 2010 年代後期隨著手機光學水平的提高和被廣泛接受而增加。
  6. 目前,二維碼正被廣泛用於各種應用,如在線支付、查看酒店菜單、共享無線密碼、獲取產品成本和其他信息等。
  7. 二維碼變得如此出名,以至於現在每部新智能手機都配有內置的二維碼閱讀器。

在下面的教程中,我們將學習使用 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%不等,如下所示:

  1. error correction l: as high as 7%
  2. error correction m: as high as 15%
  3. error correction q: as high as 25%
  4. error correction h: as high as 30%

|
| three | 箱 _ 尺寸 | 該參數用於調節二維碼單個塊中的像素數。 |
| four | 邊框 | 此參數用於控制邊框的厚度。默認邊框為 4 像素厚。 |

我們可以使用二維碼對象的以下功能來創建二維碼。

| 沒有。 | 功能 | 描述 |
| one | add_data() | 我們可以將二維碼的內容作為參數傳遞給這個函數。 |
| Two | make() | 如果我們不確定使用哪個版本的二維碼,我們可以通過以下方式自動設置版本:

  1. Set the version parameter to none, and.
  2. 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-tw/n/126628.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
Z0EMN的頭像Z0EMN
上一篇 2024-10-03 23:09
下一篇 2024-10-03 23:09

相關推薦

  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智慧、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • 蝴蝶優化演算法Python版

    蝴蝶優化演算法是一種基於仿生學的優化演算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化演算法Python版…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29

發表回復

登錄後才能評論