Indice dell'articolo
Introduzione
Praticamente tutti usano i QR code ma pochi sanno come sono fatti veramente e quali elementi li compongono. Dietro quella semplice griglia di quadratini bianchi e neri si nasconde una struttura molto precisa, studiata per rendere la scansione affidabile anche in condizioni non perfette: stampa di scarsa qualità, superfici curve, illuminazione non ideale.
In questa guida vediamo la griglia, le modalità con cui i dati vengono codificati al suo interno, i pattern fissi che permettono allo scanner di orientarsi, il funzionamento del mascheramento e gli errori più comuni da evitare quando si stampa o si personalizza un QR Code. Se però prima vuoi approfondire in modo generale il mondo dei QR Code, abbiamo scritto una guida apposta su cosa sono i QR Code e a cosa servono.
La griglia del QR Code
Un QR Code è una matrice di piccoli moduli (quadrati bianchi e neri) organizzati in una griglia. La dimensione della griglia dipende dalla quantità di dati contenuti: più informazioni, più grande e fitto sarà il codice.
- Versione 1: 21 × 21 moduli
- Versione 10: 57 × 57 moduli
- Versione 40: 177 × 177 moduli (la massima grandezza prevista dallo standard)
Per capire meglio, ecco una tabella di esempio con la capacità numerica massima:
| Versione | Dimensione griglia | Capacità (solo numerica) |
|---|---|---|
| 1 | 21 × 21 | fino a 41 cifre |
| 10 | 57 × 57 | fino a 174 cifre |
| 40 | 177 × 177 | fino a 7.089 cifre |
Questa tabella però racconta solo metà della storia: la capacità reale di un QR Code cambia parecchio in base al tipo di dati che ci inserisci, non solo alla versione. È qui che entrano in gioco le modalità di codifica.
Le modalità di codifica dei dati
Lo standard QR Code prevede quattro modalità di codifica, ciascuna pensata per un tipo di contenuto diverso. Lo strumento di generazione scegli automaticamente la modalità più efficiente in base a cosa stai inserendo, ma sapere come funzionano aiuta a capire perché due QR Code della stessa versione possono contenere quantità di testo molto diverse.
- Numerica: solo cifre da 0 a 9. È la modalità più efficiente in termini di spazio, perfetta per numeri di telefono o codici seriali.
- Alfanumerica: lettere maiuscole, numeri e alcuni simboli (spazio, $, %, *, +, -, ., /, :). Più flessibile ma meno densa della numerica.
- Byte: qualsiasi carattere, incluse minuscole, accenti e simboli speciali. È la modalità usata per URL, testo libero ed emoji, ma è anche la meno efficiente in termini di spazio occupato.
- Kanji: pensata per i caratteri giapponesi a doppio byte, raramente usata fuori dal Giappone.
Per dare un'idea concreta delle differenze, ecco quanti caratteri entrano in una griglia di Versione 1 con correzione errore di livello L, a seconda della modalità scelta:
| Modalità | Capacità massima (Versione 1, livello L) |
|---|---|
| Numerica | 41 cifre |
| Alfanumerica | 25 caratteri |
| Byte | 17 caratteri |
| Kanji | 10 caratteri |
Perché un link occupa più spazio di un numero
Un URL usa quasi sempre la modalità Byte, la meno efficiente. Questo è il motivo per cui un link lungo genera un QR Code visibilmente più fitto rispetto, ad esempio, a un numero di telefono della stessa lunghezza apparente: ogni carattere "costa" più moduli.
Gli elementi fondamentali di un QR Code
Oltre alla griglia, ogni QR Code contiene una serie di elementi fissi, indispensabili per garantire che lo scanner possa interpretarlo correttamente, indipendentemente dall'angolazione o dalla qualità di stampa.
- 1 Pattern di posizionamento
- 2 Pattern di allineamento
- 3 Pattern temporale
- 4 Zona silenziosa
- 5 Area dati
◉ Pattern di posizionamento
Sono i tre quadrati grandi agli angoli (in alto a sinistra, in alto a destra e in basso a sinistra). Servono al lettore per riconoscere il codice e orientarlo correttamente, anche se il QR Code viene scansionato ruotato o capovolto.
◉ Pattern di allineamento
Sono piccoli quadrati interni che compaiono nei QR Code più complessi (a partire dalla versione 2). Aiutano lo scanner a decodificare il codice anche se è leggermente inclinato, deformato o stampato su una superficie curva.
◉ Pattern temporale
È formato da una riga e una colonna di moduli alternati (bianco-nero-bianco-nero) che collegano i pattern di posizionamento. Funziona come una sorta di "righello" che permette allo scanner di capire dove inizia e finisce ogni singolo modulo della griglia.
◉ Area dati
È la zona più estesa, perché contiene le informazioni effettivamente codificate (link, testo, numeri, ecc.) insieme ai bit di correzione errore.
◉ Zona silenziosa (Quiet Zone)
È lo spazio bianco che circonda il QR Code, solitamente di almeno 4 moduli su ogni lato. Separa visivamente il codice da ciò che lo circonda: senza questo margine, lo scanner può confondere il bordo del QR Code con elementi grafici vicini e fallire la lettura.
◉ Livelli di correzione d'errore
Grazie al sistema Reed-Solomon, i QR Code possono essere letti anche se danneggiati, sporchi o parzialmente coperti. Esistono 4 livelli di protezione:
- Livello L (fino al 7% di corruzione)
- Livello M (fino al 15% di corruzione)
- Livello Q (fino al 25% di corruzione)
- Livello H (fino al 30% di corruzione)
Questo significa che un QR Code può restare leggibile anche se fino a un terzo della sua superficie è rovinata o coperta, ad esempio da un logo al centro.
I pattern di mascheramento
C'è un elemento della struttura che spesso viene tralasciato ma che è fondamentale per la leggibilità: il mascheramento (data masking). Prima di "stampare" i dati nella griglia, il generatore applica uno tra 8 pattern di mascheramento standard all'area dati.
A cosa serve? Senza mascheramento, i dati codificati potrebbero creare per caso grandi aree completamente nere o bianche, oppure pattern che assomigliano troppo ai marcatori di posizionamento, confondendo lo scanner durante la lettura. Il mascheramento "mescola" visivamente i moduli secondo una formula matematica, in modo da ottenere una distribuzione più equilibrata di bianco e nero.
Il generatore testa tutti gli 8 pattern disponibili e seleziona automaticamente quello con il punteggio di leggibilità migliore, calcolato penalizzando blocchi troppo uniformi, righe o colonne ripetitive e proporzioni sbilanciate tra moduli chiari e scuri. Tutto questo avviene in automatico: chi genera un QR Code non deve preoccuparsene, ma è proprio grazie a questo passaggio se anche codici molto densi restano scansionabili al primo tentativo.
Errori comuni e consigli pratici
Conoscere la struttura di un QR Code è utile soprattutto per evitare gli errori più frequenti quando lo si personalizza o lo si stampa. Ecco quelli che vediamo ricorrere più spesso:
- Zona silenziosa tagliata o troppo ridotta: capita spesso quando un QR Code viene incollato troppo vicino al bordo di un volantino o ritagliato male in fase di stampa. Anche un codice perfetto può diventare illeggibile se il margine bianco intorno viene compromesso.
- Contrasto insufficiente: colori troppo simili tra moduli e sfondo (ad esempio grigio chiaro su bianco) riducono drasticamente l'affidabilità della scansione, soprattutto con un livello di correzione errore basso.
- Logo troppo grande al centro: un logo che ricopre più del 25-30% dell'area dati può superare la capacità di correzione errore anche al livello H, rendendo il codice illeggibile.
- Dimensione di stampa errata: un QR Code pensato per essere letto da vicino (es. su un prodotto) diventa inutile se usato su un manifesto visto a distanza, e viceversa.
Regola pratica
Prima di stampare in grandi quantità, testa sempre il QR Code con almeno due o tre smartphone diversi, nelle stesse condizioni di luce e distanza in cui verrà effettivamente scansionato.
Conclusione
Dietro l'apparente semplicità di un QR Code si nasconde una struttura rigorosa, fatta di griglie, modalità di codifica, pattern fissi e algoritmi di mascheramento che lavorano insieme per garantire sempre la massima affidabilità. Conoscere questi elementi non è solo un esercizio teorico: aiuta a capire perché certi QR Code funzionano meglio di altri e come evitare gli errori più comuni quando li si personalizza o li si stampa.
Domande frequenti sulla struttura del QR Code
Perché un QR Code a volte non si legge anche se non è danneggiato?
Le cause più comuni non sono danni visibili ma errori di realizzazione: zona silenziosa troppo ridotta o tagliata, contrasto insufficiente tra moduli e sfondo, oppure un QR Code stampato troppo piccolo rispetto alla distanza di lettura.
Posso aggiungere un logo al centro del QR Code senza comprometterne la lettura?
Sì, ma solo se il QR Code utilizza un livello di correzione errore Q o H, che tollerano la perdita di una porzione maggiore di dati. Con un livello L o M un logo troppo grande può rendere il codice illeggibile.
Qual è la versione massima di un QR Code?
La versione massima prevista dallo standard è la versione 40, con una griglia di 177×177 moduli, capace di contenere fino a circa 7.089 cifre numeriche.
Un QR Code colorato funziona come uno in bianco e nero?
Sì, a condizione che ci sia un contrasto sufficiente tra i moduli e lo sfondo. La combinazione più sicura resta un colore scuro per i moduli su uno sfondo chiaro; combinazioni troppo simili tra loro aumentano il rischio di errori di scansione.