Comment créer et décoder un code QR à l'aide de Python

Comment créer et décoder un code QR à l'aide de Python

Un code QR (Quick Response code) est un type de code-barres matriciel qui stocke des données codées. Il a été nommé code de réponse rapide en raison de sa capacité à stocker et à accéder à des données volumineuses en un rien de temps. Vous pouvez retrouver ces QR codes partout : affiches, magazines, salles de cinéma, sites internet, gymnases, publicités, etc.





En utilisant Python, vous pouvez générer votre propre code QR, le personnaliser et décoder les informations d'un code QR.





Configurer un environnement Python

Il est recommandé de configurer un environnement isolé pour les projets Python. En faisant cela, vous pouvez mieux comprendre les dépendances du projet.





Création d'un environnement virtuel

Vous pouvez créer un environnement virtuel en Python de plusieurs manières : virtualenv, virtualenvwrapper ou distribution Anaconda. Ici, nous utiliserons virtualenv pour créer un environnement virtuel.

  1. Créez un dossier à l'aide du mkdir [Dossier] commande, où vous voulez créer ce projet.
  2. Taper cd [Dossier] dans l'invite de commande pour accéder au nouveau répertoire.
  3. Taper virtualenv [Nom de l'environnement] pour créer un environnement virtuel.
  4. Activez l'environnement virtuel en tapant [Nom de l'environnement]Scriptsactivate

Installer les packages requis

Installez les packages Python requis à l'aide de la commande pip. Assurez-vous que vous avez pip installé sur votre système .



Exécutez la commande suivante dans votre invite de commande.

pip3 install opencv-python qrcode numpy Image

Si vous ne souhaitez pas installer tous les packages en une seule fois, vous pouvez les installer un par un en tant que :





pip3 install opencv-python

Cela installe le package opencv-python qui est principalement utilisé pour la vision par ordinateur, l'apprentissage automatique et le traitement d'images.

pip3 install qrcode

Cela installe le package python qrcode qui est utilisé pour générer et lire les codes QR.





pip3 install numpy

Cela installe le package numpy python qui est utilisé pour travailler avec des tableaux.

pip3 install Image

Cela installe le package Image python qui fournit un certain nombre de fonctions pour charger des images à partir de fichiers et créer de nouvelles images.

Générer un code QR

Pour générer le code, créez un nouveau fichier avec un .py extension qui aura le code pour générer le code QR.

Collez le code suivant dans votre fichier Python et exécutez le programme.

comment regarder la télévision sur un ordinateur portable avec internet
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)

Cela créera une image de code QR (MUOQRCode.png) pour les données données (dans ce cas, www.makeuseof.com ). Le code QR généré ressemblera à ceci :

Générer un code QR personnalisé

Vous pouvez personnaliser le code QR avec les fonctionnalités étonnantes de la bibliothèque qrcode. Vous pouvez modifier la couleur de remplissage, la couleur d'arrière-plan, la taille de l'image, la taille de la boîte et l'épaisseur de la bordure du code QR.

Modification de la taille de l'image et de la boîte

Vous pouvez modifier la taille de l'image du code QR en utilisant le version paramètre dans la classe QRCode. Il accepte un entier compris entre 1 et 40, où 1 équivaut à une matrice 21x21 et 40 équivaut à une matrice 185x185. Notez que les données ne rentrent pas dans la taille spécifiée, la version sera automatiquement mise à l'échelle.

De même, vous pouvez modifier la taille de la boîte en utilisant le Taille de boîte paramètre dans la classe QRCode. Il précise les pixels de chaque case du QR code.

# 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)

Le fichier image de code QR suivant sera généré :

En outre, la sortie suivante sera affichée-

Size of the QR image(Version):
(33, 33)

Notez que la version est automatiquement mise à l'échelle en fonction de la taille des données.

Changer la couleur de remplissage

Vous pouvez modifier la couleur de remplissage du code QR en utilisant le la couleur de remplissage paramètre.

# 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)

Le fichier image de code QR suivant sera généré :

Changer la couleur d'arrière-plan

Vous pouvez changer la couleur de fond du code QR en utilisant le couleur de fond paramètre.

# 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)

Le fichier image de code QR suivant sera généré :

Modification de l'épaisseur de la bordure

Vous pouvez modifier l'épaisseur de la bordure du code QR en utilisant le frontière paramètre dans la classe QRCode.

# 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)

Le fichier image de code QR suivant sera généré :

Décoder le code QR à l'aide de l'image du code QR

Vous pouvez décoder les informations de l'image du code QR à l'aide de la bibliothèque OpenCV de Python. OpenCV a un détecteur de code QR intégré. En utilisant le détecteur, vous pouvez décoder les données du code QR.

# 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')

Si l'image fournie est un code QR valide, les données décodées seront affichées. Dans ce cas, la sortie suivante sera générée :

QRCode data:
https://www.makeuseof.com/

Décoder le code QR en direct à l'aide d'une webcam

La plupart du temps, les gens ont tendance à utiliser une webcam pour scanner les codes QR. En utilisant le potentiel de la bibliothèque Python et OpenCV, vous pouvez facilement décoder les données d'un code QR.

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()

Lorsque vous exécutez ce code, votre webcam s'ouvre automatiquement. Tenez simplement le code QR devant la webcam et les données seront décodées et affichées dans l'invite de commande.

Encodage et décodage du code QR simplifiés

En utilisant cet article, vous pouvez facilement encoder, décoder et personnaliser les codes QR comme vous le souhaitez. Vous pouvez même créer une application Scanner-Générateur de code QR complète à l'aide du code fourni.

Il existe un certain nombre de façons créatives d'utiliser les codes QR . Soyez créatif et utilisez les codes QR comme vous le souhaitez.

Partager Partager Tweeter E-mail Comment scanner un code QR sur Android et iPhone

Un scanner de code QR est pré-installé sur Android et iPhone. Voici comment l'utiliser.

Lire la suite
Rubriques connexes
  • La programmation
  • QR Code
  • Python
A propos de l'auteur Yuvraj Chandra(60 articles publiés)

Yuvraj est un étudiant de premier cycle en informatique à l'Université de Delhi, en Inde. Il est passionné par le développement Web Full Stack. Quand il n'écrit pas, il explore la profondeur de différentes technologies.

comment changer votre nom ps4
Plus de Yuvraj Chandra

Abonnez-vous à notre newsletter

Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !

Cliquez ici pour vous abonner