Cum se creează și se decodează un cod QR folosind Python

Cum se creează și se decodează un cod QR folosind Python

Un cod QR (cod de răspuns rapid) este un tip de cod de bare matricial care stochează date codificate. A fost numit cod de răspuns rapid datorită capacității sale de a stoca și accesa date mari în cel mai scurt timp. Puteți găsi aceste coduri QR peste tot: postere, reviste, săli de cinema, site-uri web, săli de sport, reclame etc.





Folosind Python puteți genera propriul cod QR, îl puteți personaliza și decoda informațiile dintr-un cod QR.





Configurați un mediu Python

Este recomandat să configurați un mediu izolat pentru proiectele Python. Procedând astfel, puteți înțelege mai multe despre dependențele proiectului.





Crearea unui mediu virtual

Poti creați un mediu virtual în Python în mai multe moduri: virtualenv, virtualenvwrapper sau distribuție Anaconda. Aici vom folosi virtualenv pentru a crea un mediu virtual.

  1. Creați un folder folosind mkdir [Folder] comanda, unde doriți să creați acest proiect.
  2. Tip cd [Folder] în promptul de comandă pentru a vă muta în noul director.
  3. Tip virtualenv [Nume mediu] pentru a crea un mediu virtual.
  4. Activați mediul virtual tastând [Nume mediu] Scripturi activate

Instalați pachetele necesare

Instalați pachetele Python necesare folosind comanda pip. Asigura-te ca ai pip instalat pe sistemul dvs. .



Rulați următoarea comandă în linia de comandă.

pip3 install opencv-python qrcode numpy Image

Dacă nu doriți să instalați toate pachetele dintr-o singură dată, le puteți instala unul câte unul ca:





pip3 install opencv-python

Aceasta instalează pachetul opencv-python care este utilizat în principal pentru viziunea computerizată, învățarea automată și procesarea imaginilor.

pip3 install qrcode

Aceasta instalează pachetul qrcode python care este utilizat pentru generarea și citirea codurilor QR.





pip3 install numpy

Aceasta instalează pachetul numpy python care este utilizat pentru lucrul cu tablouri.

pip3 install Image

Aceasta instalează pachetul Image python care oferă o serie de funcții pentru a încărca imagini din fișiere și pentru a crea imagini noi.

Generați cod QR

Pentru a genera codul, creați un fișier nou cu un fișier .py extensie care va avea codul pentru a genera codul QR.

Lipiți următorul cod în fișierul Python și rulați programul.

de ce computerul meu continuă să piardă conexiunea la 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)

Aceasta va crea o imagine de cod QR (MUOQRCode.png) pentru datele date (în acest caz, www.makeuseof.com ). Codul QR generat va arăta cam așa:

Generați un cod QR personalizat

Puteți personaliza codul QR cu caracteristicile uimitoare ale bibliotecii qrcode. Puteți schimba culoarea de umplere, culoarea de fundal, dimensiunea imaginii, dimensiunea cutiei și grosimea chenarului codului QR.

Modificarea dimensiunii imaginii și a casetei

Puteți modifica dimensiunea imaginii codului QR folosind versiune parametru din clasa QRCode. Acceptă un număr întreg între 1 și 40 unde 1 este echivalent cu matricea 21x21 și 40 este echivalent cu matricea 185x185. Rețineți că datele nu se încadrează în dimensiunea specificată, versiunea se va mări automat.

În mod similar, puteți modifica dimensiunea cutiei folosind box_size parametru din clasa QRCode. Specifică pixelii fiecărei casete din codul QR.

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

Următorul fișier imagine cu cod QR va fi generat:

De asemenea, va fi afișată următoarea ieșire-

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

Rețineți că versiunea este mărită automat în funcție de dimensiunea datelor.

Schimbarea culorii de umplere

Puteți schimba culoarea de umplere a codului QR folosind fill_color parametru.

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

Următorul fișier imagine cu cod QR va fi generat:

Schimbarea culorii de fundal

Puteți schimba culoarea de fundal a codului QR folosind culoare de fundal parametru.

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

Următorul fișier imagine cu cod QR va fi generat:

Schimbarea grosimii frontierei

Puteți modifica grosimea chenarului codului QR folosind frontieră parametru din clasa 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)

Următorul fișier imagine cu cod QR va fi generat:

Decodează codul QR folosind imaginea codului QR

Puteți decoda informații din imaginea codului QR folosind biblioteca OpenCV a Python. OpenCV are un detector de cod QR încorporat. Folosind detectorul puteți decoda date din codul 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')

Dacă imaginea furnizată este un cod QR valid, vor fi afișate date decodate. În acest caz, va fi generată următoarea ieșire-

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

Decodează codul QR în direct folosind o cameră web

De cele mai multe ori oamenii tind să folosească o cameră web pentru scanarea codurilor QR. Folosind potențialul bibliotecii Python și OpenCV puteți decoda cu ușurință datele dintr-un cod 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()

Când executați acest cod, camera dvs. web va fi deschisă automat. Pur și simplu țineți codul QR în fața camerei web și datele vor fi decodate și afișate în promptul de comandă.

Codificarea și decodarea codului QR ușor

Folosind acest articol puteți codifica, decoda și personaliza cu ușurință codurile QR după cum doriți. Puteți chiar crea o aplicație completă Scanner-Generator de cod QR folosind codul furnizat.

Există o serie de moduri creative de a folosi codurile QR. Fii creativ și folosește codurile QR după cum dorești.

Acțiune Acțiune Tweet E-mail Cum se scanează un cod QR pe ​​Android și iPhone

Există un scaner de cod QR preinstalat atât pe Android, cât și pe iPhone. Iată cum să îl utilizați.

Citiți în continuare
Subiecte asemănătoare
  • Programare
  • Cod QR
  • Piton
Despre autor Yuvraj Chandra(60 de articole publicate)

Yuvraj este student la Universitatea din Delhi, India. Este pasionat de dezvoltarea web Full Stack. Când nu scrie, explorează profunzimea diferitelor tehnologii.

cum se schimbă contul Gmail implicit în Chrome
Mai multe de la Yuvraj Chandra

Aboneaza-te la newsletter-ul nostru

Alăturați-vă newsletter-ului pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!

Faceți clic aici pentru a vă abona