Ogni codice qui è statico. Il contenuto è codificato nel disegno stesso, quindi il codice è il dato. Non c'è reindirizzamento tramite POLPROG, non c'è link breve, non c'è account e non c'è nulla che possa scadere o essere spento. Un codice generato oggi porterà allo stesso contenuto fra dieci anni, che questo sito esista ancora o no.
È l'opposto di un codice QR dinamico o di tracciamento, che codifica un link al server di qualcun altro e smette di funzionare nel momento in cui quel servizio chiude, cambia i prezzi o perde il dominio.
Cosa può codificare
Link, testo semplice, credenziali Wi-Fi, un contatto vCard, e-mail, SMS, telefono, WhatsApp, posizione geografica e un evento di calendario. Ogni tipo ha il proprio modulo, e ogni campo viene validato rispetto al formato in cui verrà codificato, così un codice Wi-Fi che porta una password e una scheda contatto che porta un nome escono entrambi ben formati.
L'encoder
Un encoder ISO/IEC 18004 completo, scritto come modulo di questo sito invece che tirato dentro come dipendenza: segmentazione dell'input in tratti numerici, alfanumerici e byte, scelta della versione più piccola che basta, costruzione del flusso di bit, correzione Reed-Solomon, posizionamento dei dati nel percorso a zigzag e infine la prova di tutte e otto le maschere con la penalità più bassa che vince, esattamente come vuole la norma. Scrivere un encoder si difende solo se viene verificato e non creduto, quindi le sue matrici finali sono confrontate bit per bit con un'implementazione di riferimento matura, su ogni modalità, ogni livello di correzione e una serie di versioni, più un giro completo di decodifica.
Prima di stamparlo
Un codice QR corretto sullo schermo può risultare illeggibile su carta, quindi il generatore giudica il risultato invece di limitarsi a disegnarlo:
- Contrasto fra i due colori scelti, con avviso sotto circa 3:1, dove le letture cominciano a fallire.
- Inversione, perché la maggior parte dei decodificatori si aspetta scuro su chiaro e alcuni non leggono affatto il contrario.
- Dimensione dei moduli alla dimensione di esportazione scelta, perché un simbolo può essere più fitto della fotocamera che deve risolverlo.
- Zona di silenzio, il bordo chiaro con cui il lettore trova dove inizia il simbolo. La norma chiede quattro moduli; sotto avvisa, e a zero rifiuta.
- Copertura del logo, misurata rispetto al budget di correzione degli errori invece che stimata a occhio.
La copertura cresce con il quadrato della larghezza, ed è questo che sorprende: un logo largo il 30 per cento del codice ne nasconde il 9 per cento, e uno largo la metà ne nasconde il 25 per cento. Aggiungere un logo alza automaticamente il livello di correzione, un logo oltre metà del budget viene segnalato e oltre l'intero budget viene rifiutato.
Dove gira
Interamente nel tuo browser. Encoder, anteprima, composizione del logo ed esportazione in PNG e SVG girano in locale, e dietro questa pagina non c'è alcun endpoint API, quindi una chiave Wi-Fi, un numero di telefono privato o una scheda contatto non hanno dove andare, nemmeno per sbaglio. Un logo che aggiungi viene letto con FileReader e non viene mai caricato. Apri il pannello di rete del browser mentre usi lo strumento e resterà vuoto.