QR Studio
Indietro
← Blog

Come funziona un codice QR e come lo legge il tuo telefono

Ultimo aggiornamento: 15/09/2026

Punti la fotocamera, vedi un quadratino per mezzo secondo e il telefono ti mostra già il link. Sembra magia, ma è geometria, matematica e un po' di ridondanza ben studiata. Ecco com'è fatto un codice QR all'interno e come viene decodificato.

L'anatomia di un QR

Un codice QR è una griglia quadrata di caselle bianche e nere chiamate moduli. All'interno di quella griglia ci sono zone con un ruolo fisso, sempre nella stessa posizione relativa:

  1. Pattern di posizionamento: i tre grandi quadrati agli angoli.
  2. Pattern di temporizzazione: la linea tratteggiata che attraversa il centro.
  3. Zona dati: il resto dei moduli, con l'informazione codificata.
  4. Zona di silenzio: il margine bianco attorno a tutto il codice.

Dai tuoi dati alla griglia

Quando generi un QR, il testo, l'URL o i dati WiFi vengono prima convertiti in binario e raggruppati in base al tipo di contenuto (numerico, alfanumerico, testo libero). A questo si aggiungono le informazioni di correzione d'errore, calcolate con un algoritmo chiamato Reed–Solomon (lo stesso tipo di matematica usata per far suonare bene un CD graffiato). Tutto questo insieme di bit viene sistemato nella griglia seguendo un pattern a zigzag, e infine viene applicata una delle otto possibili “maschere”: un pattern che mescola i moduli per evitare zone troppo uniformi di bianco o nero, più difficili da leggere per una fotocamera.

Come lo decodifica la fotocamera

Quando punti il telefono, il processo avviene in pochi fotogrammi:

  1. Il software cerca nell'immagine i tre pattern di posizionamento caratteristici (proporzione di fasce 1:1:3:1:1), molto rari nelle foto “normali”, per questo vengono rilevati velocemente.
  2. Con quei tre punti calcola l'orientamento, la dimensione e la prospettiva del codice, correggendo la distorsione se la foto non è stata scattata frontalmente.
  3. Usa i pattern di temporizzazione per tracciare la griglia esatta e “campiona” ogni modulo, leggendolo come 0 (bianco) o 1 (nero).
  4. Rimuove la maschera applicata al momento della generazione del codice (quell'informazione si trova nella zona di formato) per recuperare i dati originali.
  5. Applica la correzione d'errore Reed–Solomon: se alcuni moduli non sono stati letti correttamente (per sporco, un logo, una rottura), li ricostruisce matematicamente a partire dalla ridondanza salvata.
  6. Converte i bit risultanti di nuovo in testo e agisce in base al tipo di dato: apre il browser se è un URL, offre di connettersi se è WiFi, mostra il testo se è testo semplice.

Perché a volte non si legge

Quasi sempre è per uno di questi motivi: poco contrasto tra i colori scelti, il margine bianco ritagliato o troppo piccolo, il codice troppo piccolo per la distanza di scansione, o un logo troppo grande per il livello di correzione d'errore configurato.

Ora che sai come funziona, provane a creare uno!

Vai al generatore