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:
- Pattern di posizionamento: i tre grandi quadrati agli angoli.
- Pattern di temporizzazione: la linea tratteggiata che attraversa il centro.
- Zona dati: il resto dei moduli, con l'informazione codificata.
- Zona di silenzio: il margine bianco attorno a tutto il codice.
- Pattern di posizionamento (i tre grandi quadrati in tre dei quattro angoli): permettono al lettore di trovare istantaneamente il codice nell'immagine e di calcolarne dimensione e rotazione, indipendentemente da quanto sia inclinata la foto.
- Pattern di temporizzazione: due linee tratteggiate che collegano i pattern di posizionamento e indicano al lettore la dimensione esatta di ogni modulo, per contare la griglia con precisione.
- Pattern di allineamento (nei codici più grandi): un quadrato più piccolo che aiuta a correggere le distorsioni quando la foto non è stata scattata perfettamente piatta.
- Informazioni di formato: una fascia stretta vicino ai pattern di posizionamento che indica al lettore quale livello di correzione d'errore e quale maschera sono stati usati.
- Zona dati: il resto della griglia, dove risiede l'informazione reale codificata in binario, più i blocchi di correzione d'errore.
- Zona di silenzio (quiet zone): il margine bianco attorno a tutto il codice. Non è decorativo: senza quel margine, il lettore può confondere il bordo del QR con lo sfondo dell'immagine e non riconoscerlo.
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:
- 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.
- Con quei tre punti calcola l'orientamento, la dimensione e la prospettiva del codice, correggendo la distorsione se la foto non è stata scattata frontalmente.
- Usa i pattern di temporizzazione per tracciare la griglia esatta e “campiona” ogni modulo, leggendolo come 0 (bianco) o 1 (nero).
- Rimuove la maschera applicata al momento della generazione del codice (quell'informazione si trova nella zona di formato) per recuperare i dati originali.
- 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.
- 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