Streckkoder är en vanlig syn i våra dagliga liv. Med bara några enkla steg kan du enkelt generera och skanna streckkoder med Python.
När du köper en vara i en butik kallas de parallella svarta ränderna med varierande bredd på varan du köper streckkod. Streckkoder är en metod för att representera data i ett visuellt, maskinläsbart format. Streckkoder används för att lagra information om produkter för enkel identifiering och spårning. Olika branscher använder streckkoder för lagerhantering.
Med Python kan du generera streckkoder, skanna och läsa innehållet i en streckkod.
Hur man genererar och anpassar streckkoder
Följande steg visar hur man genererar streckkoder med hjälp av python-streckkod bibliotek.
1. Installera det obligatoriska biblioteket
Öppna din terminal eller kommandotolken och kör följande pip-kommando för att installera det nödvändiga biblioteket. Se till att du har pip installerat på din maskin.
pip install python-barcode
2. Importera de nödvändiga modulerna
Inkludera följande importsatser i ditt skript för att importera de moduler som behövs för generering av streckkoder.
import barcode
from the barcode.writer import ImageWriter
Författare hantera generering och lagring av streckkodsbilder i olika format. De python-streckkod biblioteket tillhandahåller olika streckkodsskrivare. Här ska du använda ImageWriter klass som återger streckkoder som bilder.
3. Kod för att generera streckkod
De python-streckkod biblioteket erbjuder olika streckkodsformat, såsom Code39, Code128, EAN13 och ISBN-10 för att generera streckkoder.
defgenerate_barcode(data, barcode_format, options=None):
# Get the barcode class corresponding to the specified format
barcode_class = barcode.get_barcode_class(barcode_format)
# Create a barcode image using the provided data and format
barcode_image = barcode_class(data, writer=ImageWriter())
# Save the barcode image to a file named "barcode" with the specified options
barcode_image.save("barcode", options=options)
De generera_streckkod funktionen genererar en streckkod baserat på det givna data och format (streckkodsformat) och sparar streckkodsbilden till en fil, streckkod.png. Filtillägget beror på vilken skrivarklass du använder.
4. Generera och anpassa streckkoder
För att generera en streckkod, ring generera_streckkod fungerar och skicka de nödvändiga parametrarna.
generate_barcode("MakeUseOf", "code128")
Författare har flera alternativ som låter dig anpassa streckkoder. Anpassningsalternativ inkluderar att ändra storlek, teckensnitt, färg på streckkoden och så vidare. Du kan hänvisa till python-streckkod dokumentation för att komma åt den fullständiga listan över vanliga skrivaralternativ.
generate_barcode("MakeUseOf", "code128", options={"foreground":"red",
"center_text": False,
"module_width":0.4,
"module_height":20})
Hur man skannar och avkodar streckkoder
Följande steg visar hur man skannar och avkodar streckkoder med Python pyzbar bibliotek.
1. Installera de obligatoriska biblioteken
För att skanna och avkoda streckkoder måste du installera följande bibliotek:
brew install zbar # Mac OS X
sudo apt-get install libzbar0 # Linux OS
pip install pyzbar opencv-python
2. Importera de nödvändiga modulerna
När du har installerat biblioteken, lägg till följande importsatser till ditt skript för att importera de nödvändiga modulerna.
import cv2
from pyzbar import pyzbar
3. Skanna streckkoder från bilder
För att skanna streckkoder från bildfiler:
- Ladda bilden med OpenCV: s imread fungera. Detta returnerar en instans av numpy.ndarray.
- Skicka utmatrisen till pyzbar.decode för detektering och avkodning. Du kan också skicka instanser av PIL.Image.
defscan_barcode_from_image(image_path):
# Read the image from the provided file path
image = cv2.imread(image_path)
# Decode barcodes from the image using pyzbar
barcodes = pyzbar.decode(image)
# Iterate through detected barcodes and extract data from the barcode
for barcode in barcodes:
# uses UTF-8 encoding
barcode_data = barcode.data.decode("utf-8")
barcode_type = barcode.type
print("Barcode Data:", barcode_data)
print("Barcode Type:", barcode_type)
Funktionen tar en bildsökväg parameter, läser bilden, avkodar eventuella streckkoder som finns i bilden och skriver ut avkodad data och streckkodstyp för varje upptäckt streckkod.
scan_barcode_from_image("barcode.png")
> Barcode Data: MakeUseOf
> Barcode Type: CODE128
4. Skanna streckkoder från webbkameraström
Du kan också skanna och läsa streckkoder i realtid från en webbkameraström med hjälp av Python OpenCV-biblioteket.
defscan_barcode_from_webcam():
# Initialize video capture from the default webcam (index 0)
video_capture = cv2.VideoCapture(0)whileTrue:
# Get a frame from the webcam stream
_, frame = video_capture.read()# Decode barcodes in the frame
barcodes = pyzbar.decode(frame)# Process detected barcodes
for barcode in barcodes:
# Extract barcode data and type and print them
barcode_data = barcode.data.decode("utf-8")
barcode_type = barcode.type
print("Barcode Data:", barcode_data)
print("Barcode Type:", barcode_type)# Check for exit condition: Press 'q' to quit the loop
if cv2.waitKey(1) & 0xFF == ord("q"):
break# Release video capture and close OpenCV windows
video_capture.release()
cv2.destroyAllWindows()
scan_barcode_from_webcam()
De scan_barcode_from_webcam funktionen fångar kontinuerligt ramar från webbkameran, avkodar eventuella streckkoder som finns i ramen, extraherar information om streckkoden och skriver ut informationen. För att avsluta tryck på bokstaven q på tangentbordet.
Generera streckkoder och QR-koder i Python
Med Python blir det tillgängligt och effektivt att generera och läsa streckkoder. Genom att följa stegen som beskrivs kan du skapa en mängd olika streckkoder för att passa dina behov.
QR-koder (Quick Response-koder) är tvådimensionella streckkoder som kan skannas och läsas av smartphones, surfplattor eller andra enheter utrustade med en kamera och en QR-kodläsare. Med Python qrcode-biblioteket kan du generera, skanna och läsa QR-koder effektivt.