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.

  1. Erstellen Sie einen Ordner mit dem Befehl mkdir [Ordner] , in dem Sie dieses Projekt erstellen möchten.
  2. Geben Sie cd [Folder] in die Eingabeaufforderung ein, um in das neue Verzeichnis zu wechseln.
  3. Geben Sie virtualenv [Umgebungsname] ein , um eine virtuelle Umgebung zu erstellen.
  4. Aktivieren Sie die virtuelle Umgebung, indem Sie [Umgebungsname] Skripte Aktivieren eingeben
So erstellen und dekodieren Sie einen QR-Code mit Python - qr code virtual environment

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:

So erstellen und dekodieren Sie einen QR-Code mit Python - MUOQRCode

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:

So erstellen und dekodieren Sie einen QR-Code mit Python -

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:

So erstellen und dekodieren Sie einen QR-Code mit Python - CustomisedFillColorQRCode

Ä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:

So erstellen und dekodieren Sie einen QR-Code mit Python - CustomisedBGColorQRCode

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:

So erstellen und dekodieren Sie einen QR-Code mit Python - CustomisedBorderQRCode

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.