Enqre
Torna al blog

Pubblicato il 06/08/2026

Come funziona un QR code? A cosa serve ogni parte del disegno

Come funziona un QR code? A cosa serve ogni parte del disegno

Un telefono legge un QR code in circa un decimo di secondo, e la procedura è sempre la stessa: trovare i tre quadrati agli angoli, ricavare la griglia, leggere una fascia che dice come è codificato il resto, disfare un rimescolamento, poi ricomporre i dati e riparare ciò che è danneggiato.

Ogni quadrato del disegno appartiene a uno di questi passaggi. Ecco a quale.

I tre quadrati agli angoli: trovare e orientare

I quadrati grandi in tre angoli sono i pattern di ricerca. Sono la prima cosa che uno scanner cerca, e il loro rapporto di bande chiare e scure — 1:1:3:1:1 lungo qualsiasi linea passante per il centro — è deliberatamente raro nelle immagini comuni, così la fotocamera li individua anche in una foto affollata.

Tre, non quattro: è tutto il trucco, perché tre angoli definiscono dov'è l'alto. Per questo si legge capovolto o di sbieco, e per questo coprirne uno lo uccide del tutto, per quanta correzione d'errore si sia pagata.

Le linee tratteggiate: fissare la griglia

Fra i pattern di ricerca corrono linee di moduli alternati: i pattern di sincronizzazione. Dicono allo scanner quanti moduli è largo il codice, così può stendere una griglia sull'immagine e sapere dove cade ogni cella. Senza, una foto un po' ruotata andrebbe fuori registro a metà strada.

I quadratini: correggere una superficie curva

Dalla versione 2 compaiono pattern di allineamento più piccoli all'interno. Sono punti di riferimento che permettono di annullare la distorsione: un codice su una bottiglia, un'etichetta curva, una foto presa di lato. Più grande il codice, più ne porta.

La fascia accanto agli angoli: le impostazioni

Attorno ai pattern di ricerca c'è l'informazione di formato: il livello di correzione d'errore e quale delle otto maschere è stata applicata. Si legge prima dei dati, perché senza di essa i dati non sono interpretabili. Ha una propria piccola protezione, distinta dal livello scelto — ecco perché il «30% di danno» non l'ha mai riguardata.

Il mascheramento: perché due codici dello stesso link sono diversi

I dati codificati grezzi producono spesso ampie zone vuote o strisce, che confondono una fotocamera; peggio, possono imitare un pattern di ricerca. Perciò l'encoder combina i dati in XOR con una di otto maschere, valuta il risultato e tiene la migliore.

Per questo lo stesso URL dà disegni visibilmente diversi in strumenti diversi, e per questo dalla disposizione dei punti non si «legge» nulla a occhio.

Come sono disposti i dati

Si scrivono in colonne larghe due moduli, partendo in basso a destra e serpeggiando verso l'alto, poi in basso, poi in alto: attorno ai pattern funzionali, mai attraverso. Esistono quattro modalità di codifica e l'encoder prende la più compatta utile: numerica, alfanumerica, byte (che copre gli URL comuni) e kanji.

La dimensione si chiama versione, da 1 a 40: da 21×21 moduli a 177×177, quattro moduli in più per lato a ogni passo. Al massimo, una versione 40 con la correzione più bassa contiene circa 7.089 cifre o 4.296 caratteri alfanumerici. Nessuno lo stampa: nessuna fotocamera risolve una griglia così fitta a dimensioni sensate.

Correzione d'errore: la seconda copia

Parte di ogni codice sono dati Reed-Solomon: una seconda copia matematica che permette di ricostruire l'illeggibile. Quattro livelli: circa 7%, 15%, 25% e 30% dell'area dati recuperabile, da L a H.

Quel budget paga il logo al centro, il graffio, la pioggia sull'adesivo. Spiega anche perché un livello più alto infittisce il disegno: i dati di recupero occupano spazio.

Il bordo bianco fa parte del codice

La zona di rispetto — quattro moduli di spazio libero tutt'attorno — non è decorazione. È il modo in cui lo scanner sa dove finisce il codice e comincia il mondo. Una cornice decorativa incollata al disegno la elimina, ed è una delle cause più frequenti di un bel codice stampato che non si scansiona.

Cosa contiene davvero un codice dinamico

Equivoco diffuso: che un codice dinamico memorizzi la destinazione e si aggiorni da solo. Non può: il disegno è fissato nel momento in cui viene stampato.

Ciò che codifica è un link breve: un dominio e una manciata di caratteri. La scansione apre quel link, che inoltra dove il codice punta in quel momento. Cambi la destinazione e ogni copia stampata segue, perché nulla del disegno stampato deve cambiare.

Un effetto pratico da sapere: siccome un link breve è di poche decine di caratteri, il codice resta a una versione bassa, con moduli grandi e robusti. Un codice statico con un URL lungo e parametri richiede una griglia molto più fitta a parità di dimensione fisica — proprio il codice che fallisce su un manifesto.

Risposte rapide

  • Cosa sono i tre quadrati grandi? Pattern di ricerca: individuano e orientano il codice.
  • Perché si legge capovolto? Tre angoli bastano a definire l'alto.
  • E i quadratini interni? Pattern di allineamento, contro la distorsione.
  • Perché due codici dello stesso link differiscono? Il mascheramento: si sceglie la migliore di otto.
  • Quanta capacità? Fino a circa 7.089 cifre al massimo, molto oltre lo stampabile.
  • Il bordo bianco è opzionale? No: serve a trovare i bordi.
  • Un codice dinamico memorizza il mio link? No, un link breve che inoltra.

Continua a leggere