當您從商店購買商品時,您所購買的物品上的平行黑條紋,具有不同寬度,被稱為條形碼。條形碼是一種將數據以視覺、機器可讀的方式表示的方法。條形碼被用于存儲有關產品的信息,以便進行方便的識別和追蹤。各個行業都使用條形碼進行庫存管理。
使用Python,您可以生成條形碼,掃描并讀取條形碼的內容。
如何生成和自定義條形碼 以下步驟展示了如何使用python-barcode庫生成條形碼。
打開您的終端或命令提示符,運行以下pip命令來安裝所需的庫。確保您的機器上已安裝了pip。
linuxmi@linuxmi ~/www.linuxmi.com % pip install python-barcode
在您的腳本中,包含以下導入語句,以導入生成條形碼所需的模塊。
import barcodefrom the barcode.writer import ImageWriter
編寫器負責在不同格式中生成和保存條形碼圖像。python-barcode 庫提供了不同的條形碼編寫器。在這里,您將使用ImageWriter 類,該類將條形碼渲染為圖像。
python-barcode庫提供了各種條形碼格式,例如Code39、Code128、EAN13和ISBN-10,用于生成條形碼。
def generate_barcode(data, barcode_format, options=None): # 獲取與指定格式對應的條形碼類 barcode_class = barcode.get_barcode_class(barcode_format) # 使用提供的數據和格式創建條形碼圖像 barcode_image = barcode_class(data, writer=ImageWriter()) # 將條形碼圖像保存到名為"linuxmi"的文件中,帶有指定的選項 barcode_image.save("linuxmi", options=options)
generate_barcode函數根據給定的數據和格式(barcode_format)生成條形碼,并將條形碼圖像保存到文件linuxmi.png中。文件擴展名取決于您使用的寫入器類別。
要生成條形碼,調用 generate_barcode 函數并傳遞所需的參數。
generate_barcode("www.linuxmi.com", "code128")
生成的條形碼
編寫器接受多個選項,使您能夠自定義條形碼。自定義選項包括修改條形碼的大小、字體、顏色等。您可以參考python-barcode文檔,以獲得完整的常見編寫器選項列表。
generate_barcode("www.linuxmi.com", "code128", options={"foreground":"red", "center_text": False, "module_width":0.4, "module_height":20})
在自定義選項中,您可以調整前景顏色、背景顏色,甚至可以選擇是否在條形碼上顯示文本。
以下步驟介紹了如何使用Python的pyzbar庫掃描和解碼條形碼。
要掃描和解碼條形碼,您需要安裝以下庫:
brew install zbar # Mac OS Xsudo apt-get install libzbar0 # Linux OSpip install pyzbar opencv-python
安裝完庫后,在腳本中添加以下導入語句以導入必要的模塊。
import cv2from pyzbar import pyzbar
從圖像文件中掃描條形碼的方法如下:
使用OpenCV的imread函數加載圖像。這將返回一個numpy.ndarray實例。
將輸出數組傳遞給pyzbar.decode以進行檢測和解碼。您還可以傳遞PIL.Image的實例。
def scan_barcode_from_image(image_path): # 從提供的文件路徑讀取圖像 image = cv2.imread(image_path) # 使用pyzbar從圖像中解碼條形碼 barcodes = pyzbar.decode(image) # 遍歷檢測到的條形碼并從中提取數據 for barcode in barcodes: # 使用UTF-8編碼 barcode_data = barcode.data.decode("utf-8") barcode_type = barcode.type print("Barcode Data:", barcode_data) print("Barcode Type:", barcode_type)
該函數接受image_path參數,讀取圖像,解碼圖像中存在的任何條形碼,并打印每個檢測到的條形碼的解碼數據和類型。
scan_barcode_from_image("linuxmi.png")
您還可以借助Python OpenCV庫從網絡攝像頭流中實時掃描和讀取條形碼。
def scan_barcode_from_webcam(): # 初始化默認網絡攝像頭 (index 0) 視頻捕獲 video_capture = cv2.VideoCapture(0) while True: # 從網絡攝像頭流中獲取一幀 _, frame = video_capture.read() # 解碼幀中的條形碼 barcodes = pyzbar.decode(frame) # 處理檢測到的條形碼 for barcode in barcodes: # 提取條形碼數據和類型并打印 barcode_data = barcode.data.decode("utf-8") barcode_type = barcode.type print("Barcode Data:", barcode_data) print("Barcode Type:", barcode_type) # 檢查退出條件:按下'q'退出循環 if cv2.waitKey(1) & 0xFF == ord("q"): break # 釋放視頻捕獲并關閉OpenCV窗口 video_capture.release() cv2.destroyAllWindows()scan_barcode_from_webcam()
scan_barcode_from_webcam函數連續捕獲網絡攝像頭的幀,解碼幀中存在的任何條形碼,提取條形碼的信息并打印出來。按鍵盤上的字母q鍵可以退出。
使用Python,生成和讀取條形碼變得輕松高效。按照上述步驟,您可以生成各種適合您需求的條形碼。
QR碼(Quick Response codes)是一種二維碼,可以通過配備攝像頭和QR碼閱讀器應用程序的智能手機、平板電腦或其他設備進行掃描和閱讀。使用Python的qrcode庫,您可以高效地生成、掃描和閱讀QR碼。
本文鏈接:http://www.tebozhan.com/showinfo-26-6171-0.html如何使用 Python 生成和讀取條形碼
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com
上一篇: Electron 26.0.0 正式發布,跨平臺桌面應用開發工具!
下一篇: 十分鐘,帶你了解 Vue3 的新寫法