CURS ONLINE INTERACTIV

Python 3

PENTRU ÎNCEPĂTORI


"Primul volum Python în română care pur și simplu m-a uimit. Foarte bine explicat și ușor de înțeles." (Alexandru Cosmin)

"Cea mai bună carte de Python din RO." (Iulian Geană)

"Livrare promptă! M-am pus pe treabă!" (Emil Ilie)

TOATE RECENZIILE
IDEI DE PROIECTE
PAG. 1 / 1
Generarea codurilor QR cu Python
Acasă >>> Lecții online, limbajul Python 3

Descoperă modulul qrcode

Ați văzut acele pătrățele alb-negru numite coduri QR (Quick Response) peste tot: pe afișe, pe ambalaje sau chiar la școală pentru a accesa rapid un site. Există tot felul de aplicații web care oferă servicii de generare gratuită sau contra unui cost modic:



V-ați întrebat vreodată dacă pot fi create și cu ajutorul programării? Spre exemplu, modulul qrcode este o bibliotecă Python care ne permite să generăm imagini de coduri QR dintr-un simplu șir de text. Poți transforma o adresă web, un număr de telefon sau orice alt mesaj într-un cod pe care un smartphone îl poate scana și citi instantaneu.

Înainte de a-l folosi, trebuie să îl instalezi pe calculatorul tău. Dacă folosești un mediu de programare (cum ar fi Thonny, VS Code sau din cmd.exe), scrie următoarea comandă:

pip install qrcode

De asemenea, ai nevoie de un modul suplimentar numit Pillow (sau PIL) pentru a putea salva imaginea codului QR. Nu îl vei importa direct în program, ci este utilizat de către modulul qrcode. Instalează-l și pe acesta:

pip install Pillow

Acum că ai pe computer tot ce trebuie, e timpul să scrii codul!

Primul tău cod QR

Începe prin a spune lui Python că vrei să folosești biblioteca qrcode:

import qrcode

Modulul vine cu o clasă foarte utilă numită QRCode care te ajută să configurezi codul (cât de mare să fie, câtă eroare să tolereze, etc.). Pentru început, o vom folosi simplu:

generator_qr = qrcode.QRCode(
    version=1, # dimensiunea (1 e mic, dar suficient)
    error_correction=qrcode.constants.ERROR_CORRECT_L, # nivelul de corecție a erorilor
    box_size=10, # cât de mari să fie pătrățelele
    border=4, # cât spațiu să fie în jurul codului
)


Acum, îi spunem codului QR ce informație să stocheze:

url_site = "https://www.pythonisti.ro"
generator_qr.add_data(url_site)
generator_qr.make(fit=True)


În final, transformăm datele într-o imagine și o salvăm pe calculator:

codul_meu = generator_qr.make_image(fill_color="black", back_color="white")
codul_meu.save("codul_meu_qr.png")
print("Codul QR a fost generat și salvat cu numele 'codul_meu_qr.png'!")


Iată tot codul pus cap la cap:

import qrcode

generator_qr = qrcode.QRCode(
    version=1, # dimensiunea (1 e mic, dar suficient)
    error_correction=qrcode.constants.ERROR_CORRECT_L, # nivelul de corecție a erorilor
    box_size=10, # cât de mari să fie pătrățelele
    border=4, # cât spațiu să fie în jurul codului
)

url_site = "https://www.pythonisti.ro"

generator_qr.add_data(url_site)
generator_qr.make(fit=True)

codul_meu = generator_qr.make_image(fill_color="black", back_color="white")
codul_meu.save("codul_meu_qr.png")

print(f"Codul QR pentru {url_site} a fost generat!")


În cazul meu, am executat programul și imediat pe Desktop (folderul unde eu am acest program de test) a apărut fișierul "codul_meu_qr.png" generat de Python. Atât de simplu!



Deschid fișierul și codul QR (implicit are dimensiunea de 330x330 pixeli) este deja disponibil pentru utilizare în cadrul proiectelor mele:



Am testat și totul funcționează corect - acesta trimite imediat la siteul impus în interiorul variabilei url_site.

Despre parametri

Să îi analizăm cu atenție pe rând:

  • version setează dimensiunea și complexitatea matricei codului QR. Cu cât numărul este mai mare, cu atât codul este mai mare și poate stoca mai multe date. Valori uzuale: de la 1 (21x21 module/pătrățele) la 40 (177x177 module). Pentru adrese web scurte sau texte, version=1 sau version=2 este de obicei suficient. Dacă lăsați acest parametru neseat, modulul va alege automat dimensiunea potrivită (prin make(fit=True)).
  • box_size determină mărimea fiecărui pătrățel (sau "modul") din codul QR, în pixeli. Valorile uzuale sunt între 1 și 20. Setează acest parametru pentru a obține o imagine finală mai mare sau mai mică. Dacă box_size este 10 și codul are versiunea 1 (21x21 module), atunci zona datelor va fi de 210x210 pixeli.
  • border setează grosimea marginii albe din jurul codului QR. Conform standardului, această margine trebuie să aibă o lățime de minim 4 module. Recomandată este o valoare minimă de 4, altfel scanerul poate întâmpina dificultăți la citire.
  • fill_color setează culoarea pătrățelelor din codul QR (de obicei negre).
  • back_color setează culoarea de fundal a imaginii (de obicei albă).

Cum funcționează de fapt un cod QR?

Un cod QR este, în esență, un sistem ingenios de stocare a datelor, similar codului de bare, dar bidimensional (pe înălțime și lățime). Imaginează-ți că este o tablă de șah digitală. Fiecare pătrat alb-negru de pe grilă este numit un modul, și reprezintă cea mai mică unitate de informație. Un modul negru reprezintă binar cifra 1, iar un modul alb reprezintă cifra 0. Prin aranjamentul lor complex, aceste șiruri de 1 și 0 formează octeți, caractere și, în final, datele pe care le-ați introdus (precum o adresă web). Cu cât datele sunt mai lungi, cu atât este nevoie de mai multe rânduri și coloane de module, ceea ce duce la un cod QR de o versiune mai mare (sau mai complexă).

Codul QR nu este doar o înșiruire aleatorie de pătrățele. Are câteva elemente esențiale care ajută scanerul să înțeleagă unde începe și unde se termină codul, chiar dacă este rotit sau deteriorat. Cele mai vizibile sunt cele trei pătrate de poziționare mari, situate în colțurile codului QR (cu excepția celui din dreapta jos):



Acestea permit cititorului să localizeze și să orienteze matricea de date. De asemenea, există zone dedicate care stochează informații despre format (cum ar fi nivelul de corecție a erorilor și masca de date aplicată) și linii de aliniere. Toate aceste componente lucrează împreună pentru a asigura citirea rapidă și precisă a datelor stocate, transformând șirurile binare într-o informație ușor de înțeles de către un dispozitiv.
IDEI DE PROIECTE
Iată o listă concisă de idei de proiecte, direct utilizabile la școală:

  1. Creează un cod QR pentru adresa Google Classroom, un document partajat cu teme sau un link util pentru orele de informatică/matematică.
  2. Realizează un cod QR care stochează datele tale de contact (nume, telefon, email, profil LinkedIn, etc.), astfel încât oricine îl scanează să te poată adăuga în agenda sa instantaneu. Documentează-te despre formatul de date VCard (fișier .vcf)!
  3. Scrie un script care criptează un mesaj scurt (de exemplu, un text amuzant sau o ghicitoare) și îl stochează într-un cod QR, generând surpriza la scanare.
  4. Creează un program care permite utilizatorului să aleagă culoarea de umplere (fill_color) și culoarea de fundal (back_color) a codului QR, avertizând în același timp asupra nevoii de contrast puternic pentru scanare.
  5. Creează un cod QR care conține un link către un formular Google Forms sau un sondaj online. Scriptul poate include data și ora curentă în denumirea fișierului QR pentru a marca fiecare zi.
Secțiunea s-a terminat.

Cărțile editurii noastre
O parte dintre manualele și culegerile de probleme se găsește și [în format electronic] securizat sub formă de fișier *.pdf.

"O cameră fără cărţi este ca un corp fără suflet." (G. K. Chesterton)

Cursanții au mai cumpărat ...
[vezi lista completă a cărților]
 home   list  LECȚII   perm_identity   arrow_upward