So erstellen und dekodieren Sie einen QR-Code mit Python
Ein QR-Code (Quick Response Code) ist eine Art Matrix-Barcode, in dem codierte Daten gespeichert werden. Es wurde als "Quick Response Code" bezeichnet, da es in kürzester Zeit große Datenmengen speichern und darauf zugreifen kann. Sie finden diese QR-Codes überall: Plakate, Magazine, Kinosäle, Websites, Fitnessstudios, Anzeigen usw.
Mit Python können Sie Ihren eigenen QR-Code generieren, anpassen und Informationen aus einem QR-Code dekodieren.
Richten Sie eine Python-Umgebung ein
Es wird empfohlen, eine isolierte Umgebung für Python-Projekte einzurichten. Auf diese Weise können Sie mehr über die Abhängigkeiten des Projekts erfahren.
Erstellen einer virtuellen Umgebung
Sie können eine virtuelle Umgebung in Python auf verschiedene Arten erstellen: virtualenv, virtualenvwrapper oder Anaconda Distribution. Hier werden wir virtualenv verwenden , um eine virtuelle Umgebung zu erstellen.
- Erstellen Sie einen Ordner mit dem Befehl mkdir [Ordner] , in dem Sie dieses Projekt erstellen möchten.
- Geben Sie cd [Folder] in die Eingabeaufforderung ein, um in das neue Verzeichnis zu wechseln.
- Geben Sie virtualenv [Umgebungsname] ein , um eine virtuelle Umgebung zu erstellen.
- Aktivieren Sie die virtuelle Umgebung, indem Sie [Umgebungsname] Skripte Aktivieren eingeben
Installieren Sie die erforderlichen Pakete
Installieren Sie die erforderlichen Python-Pakete mit dem Befehl pip. Stellen Sie sicher, dass Pip auf Ihrem System installiert ist .
Führen Sie den folgenden Befehl in Ihrer Eingabeaufforderung aus.
pip3 install opencv-python qrcode numpy Image
Wenn Sie nicht alle Pakete auf einmal installieren möchten, können Sie sie einzeln installieren:
pip3 install opencv-python
Dadurch wird das opencv-python-Paket installiert, das hauptsächlich für Computer Vision, maschinelles Lernen und Bildverarbeitung verwendet wird.
pip3 install qrcode
Dadurch wird das qrcode-Python-Paket installiert, das zum Generieren und Lesen von QR-Codes verwendet wird.
pip3 install numpy
Dadurch wird das numpy-Python-Paket installiert, das für die Arbeit mit Arrays verwendet wird.
pip3 install Image
Dadurch wird das Image Python-Paket installiert, das eine Reihe von Funktionen zum Laden von Bildern aus Dateien und zum Erstellen neuer Bilder bietet.
Generieren Sie einen QR-Code
Erstellen Sie zum Generieren des Codes eine neue Datei mit der Erweiterung .py, die den Code zum Generieren des QR-Codes enthält.
Fügen Sie den folgenden Code in Ihre Python-Datei ein und führen Sie das Programm aus.
import qrcode
# Data for which you want to make QR code
# Here we are using the URL of the MakeUseOf website
data = "https://www.makeuseof.com/"
# File name of the QR code Image
# Change it with your desired file name
QRCodefile = "MUOQRCode.png"
# Generating the QR code
QRimage = qrcode.make(data)
# Saving image into a file
QRimage.save(QRCodefile)
Dadurch wird ein QR-Code-Image (MUOQRCode.png) für die angegebenen Daten erstellt (in diesem Fall www.makeuseof.com ). Der generierte QR-Code sieht ungefähr so aus:
Generieren Sie einen benutzerdefinierten QR-Code
Sie können den QR-Code mit den erstaunlichen Funktionen der QR-Code-Bibliothek anpassen. Sie können die Füllfarbe, Hintergrundfarbe, Bildgröße, Kastengröße und Randstärke des QR-Codes ändern.
Ändern der Bild- und Boxgröße
Sie können die Größe des QR-Codebilds mithilfe des Versionsparameters in der QRCode-Klasse ändern. Es akzeptiert eine Ganzzahl zwischen 1 und 40, wobei 1 der 21×21-Matrix und 40 der 185×185-Matrix entspricht. Beachten Sie, dass die Daten nicht in die angegebene Größe passen. Die Version wird automatisch skaliert.
Ebenso können Sie die Boxgröße mit dem Parameter box_size in der QRCode-Klasse ändern. Es gibt die Pixel jeder Box im QR-Code an.
# Importing libraries
import qrcode
import numpy as np
# Data which for you want to make QR code
# Here we are using URL of MakeUseOf website
data = "https://www.makeuseof.com/"
# Name of the QR code Image file
QRCodefile = "CustomisedImgBoxQRCode.png"
# instantiate QRCode object
qrObject = qrcode.QRCode(version=1, box_size=12)
# add data to the QR code
qrObject.add_data(data)
# compile the data into a QR code array
qrObject.make()
image = qrObject.make_image()
image.save(QRCodefile)
# print the image size (version)
print("Size of the QR image(Version):")
print(np.array(qrObject.get_matrix()).shape)
Die folgende QR-Code-Bilddatei wird generiert:
Außerdem wird die folgende Ausgabe angezeigt:
Size of the QR image(Version):
(33, 33)
Beachten Sie, dass die Version automatisch entsprechend der Datengröße skaliert wird.
Füllfarbe ändern
Sie können die Füllfarbe des QR-Codes mithilfe des Parameters fill_color ändern .
# Importing library
import qrcode
# Data for which you want to make QR Code
# Here we are using URL of MakeUseOf website
data = "https://www.makeuseof.com/"
# Name of the QR Code Image file
QRCodefile = "CustomisedFillColorQRCode.png"
# instantiate QRCode object
qrObject = qrcode.QRCode()
# add data to the QR code
qrObject.add_data(data)
# compile the data into a QR code array
qrObject.make()
image = qrObject.make_image(fill_color="red")
# Saving image into a file
image.save(QRCodefile)
Die folgende QR-Code-Bilddatei wird generiert:
Ändern der Hintergrundfarbe
Sie können die Hintergrundfarbe des QR-Codes mithilfe des Parameters back_color ändern .
# Importing library
import qrcode
# Data for which you want to make QR Code
# Here we are using URL of MakeUseOf website
data = "https://www.makeuseof.com/"
# Name of the QR Code Image file
QRCodefile = "CustomisedBGColorQRCode.png"
# instantiate QRCode object
qrObject = qrcode.QRCode()
# add data to the QR code
qrObject.add_data(data)
# compile the data into a QR code array
qrObject.make()
image = qrObject.make_image(back_color="blue")
# Saving image into a file
image.save(QRCodefile)
Die folgende QR-Code-Bilddatei wird generiert:
Randstärke ändern
Sie können die Rahmenstärke des durch QR – Code ändern , um die Grenze Parameter in der QRCode Klasse.
# Importing libraries
import qrcode
# Data for which you want to make QR Code
# Here we are using URL of MakeUseOf website
data = "https://www.makeuseof.com/"
# Name of the QR Code Image file
QRCodefile = "CustomisedBorderQRCode.png"
# instantiate QRCode object
qrObject = qrcode.QRCode(border=10)
# add data to the QR code
qrObject.add_data(data)
# compile the data into a QR code array
qrObject.make()
image = qrObject.make_image()
image.save(QRCodefile)
Die folgende QR-Code-Bilddatei wird generiert:
QR-Code mit QR-Code-Bild dekodieren
Sie können Informationen aus dem QR-Code-Bild mithilfe der OpenCV-Bibliothek von Python dekodieren. OpenCV verfügt über einen eingebauten QR-Code-Detektor. Mit dem Detektor können Sie Daten aus dem QR-Code dekodieren.
# Import Library
import cv2
# Name of the QR Code Image file
filename = "MUOQRCode.png"
# read the QRCODE image
image = cv2.imread(filename)
# initialize the cv2 QRCode detector
detector = cv2.QRCodeDetector()
# detect and decode
data, vertices_array, binary_qrcode = detector.detectAndDecode(image)
# if there is a QR code
# print the data
if vertices_array is not None:
print("QRCode data:")
print(data)
else:
print("There was some error")
Wenn das bereitgestellte Bild ein gültiger QR-Code ist, werden decodierte Daten angezeigt. In diesem Fall wird die folgende Ausgabe generiert:
QRCode data:
https://www.makeuseof.com/
QR-Code live mit einer Webcam dekodieren
Meistens verwenden Menschen eine Webcam zum Scannen von QR-Codes. Mit dem Potenzial der Python- und OpenCV-Bibliothek können Sie Daten einfach aus einem QR-Code dekodieren.
import cv2
# initalize the camera
cap = cv2.VideoCapture(0)
# initialize the OpenCV QRCode detector
detector = cv2.QRCodeDetector()
while True:
_, img = cap.read()
# detect and decode
data, vertices_array, _ = detector.detectAndDecode(img)
# check if there is a QRCode in the image
if vertices_array is not None:
if data:
print("QR Code detected, data:", data)
# display the result
cv2.imshow("img", img)
# Enter q to Quit
if cv2.waitKey(1) == ord("q"):
break
cap.release()
cv2.destroyAllWindows()
Wenn Sie diesen Code ausführen, wird Ihre Webcam automatisch geöffnet. Halten Sie einfach den QR-Code vor die Webcam und die Daten werden dekodiert und in der Eingabeaufforderung angezeigt.
QR-Code kodieren und dekodieren leicht gemacht
Mit diesem Artikel können Sie QR-Codes einfach nach Ihren Wünschen codieren, decodieren und anpassen. Mit dem bereitgestellten Code können Sie sogar eine vollständige QR-Code-Scanner-Generator-Anwendung erstellen.
Es gibt eine Reihe kreativer Möglichkeiten, QR-Codes zu verwenden . Werden Sie kreativ und verwenden Sie die QR-Codes wie Sie möchten.