使用Python自動化創(chuàng)建和掃描二維碼
引言
二維碼(Quick Response code)已成為在物理和數(shù)字領域之間架起橋梁的多功能工具。從分享聯(lián)系信息和網(wǎng)站鏈接到促進支付和跟蹤庫存,二維碼在各個行業(yè)中找到了應用。通過利用Python的功能,用戶可以自動化生成個性化的二維碼,或者在項目中集成掃描功能,從而提高效率和用戶參與度。本文將展示如何使用Python自動化創(chuàng)建和掃描二維碼。
- 使用Python創(chuàng)建二維碼
- 使用Python掃描二維碼
本文中使用的方法需要Spire.Barcode for Python,PyPI:pip install Spire.Barcode
。
使用Python創(chuàng)建二維碼
BarcodeSettings
類可用于配置生成條形碼的設置。這些設置包括條形碼類型、要編碼的數(shù)據(jù)、顏色、邊距以及水平和垂直分辨率。
完成這些設置后,我們可以使用這些配置創(chuàng)建一個BarcodeGenerator
實例。隨后,我們可以調(diào)用生成器的GenerateImage()
方法來生成條形碼圖像。
步驟如下:
- 導入
BarcodeSettings
、BarCodeType
、QRCodeECL
和BarCodeGenerator
模塊。 - 創(chuàng)建一個
BarcodeSettings
對象。 - 使用
BarcodeSettings.Type
屬性將條形碼類型設置為二維碼。 - 使用
BarcodeSettings.Data2D
屬性設置二維條形碼的數(shù)據(jù)。 - 使用
BarcodeSettings
對象下的屬性設置條形碼的其他屬性。 - 基于這些設置創(chuàng)建一個
BarCodeGenerator
對象。 - 使用
BarCodeGenerator.GenerateImage()
方法創(chuàng)建二維碼圖像。
代碼示例
from spire.barcode import BarcodeSettings, BarCodeType, QRCodeECL, BarCodeGenerator # 將所有字節(jié)寫入文件 def WriteAllBytes(fname: str, data): with open(fname, "wb") as fp: fp.write(data) fp.close() # 創(chuàng)建 BarcodeSettings 對象 barcodeSettings = BarcodeSettings() # 設置條形碼類型為 QR 碼 barcodeSettings.Type = BarCodeType.QRCode # 設置 2D 條形碼的數(shù)據(jù) barcodeSettings.Data2D = "Hello, World" # 設置邊距 barcodeSettings.LeftMargin = 0.2 barcodeSettings.RightMargin = 0.2 barcodeSettings.TopMargin = 0.2 barcodeSettings.BottomMargin = 0.2 # 設置水平分辨率 barcodeSettings.DpiX = 500 # 設置垂直分辨率 barcodeSettings.DpiY = 500 # 設置糾錯級別 barcodeSettings.QRCodeECL = QRCodeECL.M # 不在條形碼上顯示文本 barcodeSettings.ShowText = False # 在 QR 碼的中心添加 logo barcodeSettings.SetQRCodeLogoImage("PDF.png") # 使用指定的設置創(chuàng)建 BarCodeGenerator 實例 barCodeGenerator = BarCodeGenerator(barcodeSettings) # 生成條形碼圖像 image = barCodeGenerator.GenerateImage() # 將 PNG 圖像寫入磁盤 WriteAllBytes("output/QR-Code.png", image)
生成結果
使用Python掃描二維碼
庫中的BarcodeScanner
類用于條形碼圖像識別。這個類提供了幾種從條形碼中提取數(shù)據(jù)的方法,包括:
ScanOneFile()
: 掃描單個條形碼圖像文件并返回提取的數(shù)據(jù)。ScanFile()
: 掃描指定圖像文件中的所有條形碼并返回提取的數(shù)據(jù)。ScanStream()
: 從圖像數(shù)據(jù)流中掃描條形碼并返回提取的信息。
以下代碼演示了如何使用它掃描二維碼圖像。
掃描二維碼的步驟如下(掃描二維碼需要應用License):
- 導入
BarcodeScanner
模塊。 - 使用
BarcodeScanner.ScanOneFile()
方法掃描包含一個二維碼的圖像,或者使用BarcodeScanner.ScanFile()
方法掃描包含多個二維碼的圖像。 - 保存掃描結果到文本文件。
代碼示例
from spire.barcode import BarcodeScanner License.SetLicenseKey("license key") # 掃描包含一個條形碼的圖像文件 result = BarcodeScanner.ScanOneFile("output/QR-Code.png") # 掃描包含多個條形碼的圖像文件 # results = BarcodeScanner.ScanFile("QR-Codes.png") # 將掃描結果保存到文本文件 with open("output/QR-Code.txt", "w", encoding="utf-8") as f: f.write(result)
掃描結果
本文展示了如何使用Python創(chuàng)建和掃描二維碼。
到此這篇關于使用Python自動化創(chuàng)建和掃描二維碼的文章就介紹到這了,更多相關Python創(chuàng)建和掃描二維碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python 實現(xiàn)對文件夾中的圖像連續(xù)重命名方法
今天小編就為大家分享一篇python 實現(xiàn)對文件夾中的圖像連續(xù)重命名方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10數(shù)據(jù)清洗之如何用一行Python代碼去掉文本中的各種符號
我們在處理文本的時候往往需要對標點符號進行處理,下面這篇文章主要給大家介紹了關于數(shù)據(jù)清洗之如何用一行Python代碼去掉文本中的各種符號的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-11-11python使用ctypes調(diào)用擴展模塊的實例方法
在本篇文章里小編給大家整理的是一篇關于python使用ctypes調(diào)用擴展模塊的實例方法內(nèi)容,需要的朋友們可以學習參考下。2020-01-01Python中plt.plot()、plt.scatter()和plt.legend函數(shù)的用法示例
今天想要用matplotlib中的plt函數(shù)繪制圖表,將多個數(shù)據(jù)曲線在一個圖表中進行呈現(xiàn),下面這篇文章主要給大家介紹了關于Python中plt.plot()、plt.scatter()和plt.legend函數(shù)用法的相關資料,需要的朋友可以參考下2022-03-03