§

Trascina l’immagine o clicca per scegliere

Trascina l’immagine o clicca per scegliere PNG, JPG, GIF, BMP, WebP — oppure incolla dagli appunti
§

Scansiona con la fotocamera

L’accesso alla fotocamera viene richiesto solo quando questo interruttore è attivo. Non carichiamo né registriamo nulla.
§

Contenuto decodificato

In Italia i codici QR trasportano dati spesso sensibili. Il Sistema di Interscambio dell’Agenzia delle Entrate usa QR nelle ricevute di consegna delle fatture elettroniche SDI; le biglietterie di Trenitalia, Italo e FS generano QR sui titoli di viaggio digitali; le strutture ricettive espongono QR per i menù in formato GSMA e per il check-in negli alberghi; le farmacie leggono QR sulle prescrizioni elettroniche del Fascicolo Sanitario Elettronico; molti sportelli comunali e INPS li usano per i codici di accesso ai servizi. Quando punti il browser dello stesso dispositivo su un simbolo stampato o digitale vuoi sapere esattamente cosa c’è dentro prima di agire — confermare l’URL di un manifesto, recuperare la password Wi-Fi dal QR del router, leggere il vCard su un badge da fiera. Questo lettore gestisce tutti i formati che quelle sorgenti producono: URL, Wi-Fi, vCard, MeCard, testo, email, SMS, coordinate geografiche. I byte dell’immagine e il payload decodificato restano nel tuo tab.

Che cos’è un lettore di codici QR?

Un codice QR è un codice a barre matriciale bidimensionale definito dalla norma ISO/IEC 18004. Codifica testo, URL, rubrica contatti, credenziali Wi-Fi e altri brevi payload come una griglia di moduli quadrati bianchi e neri, insieme a dati di correzione degli errori Reed-Solomon in modo che il simbolo sia ancora decodificabile dopo un danno parziale o la sovrapposizione di un logo. Un lettore di codici QR fa l’operazione inversa: prende l’immagine di un simbolo QR e recupera la stringa di payload originale. Questo lettore esegue la pipeline di decodifica direttamente nel tuo browser usando la libreria open source jsQR (circa 130 KB, licenza MIT). L’immagine che trascini, incolli o scansioni con la fotocamera non lascia mai il tab. Non c’è nessun passaggio di upload. Apri DevTools durante la decodifica e il pannello Rete resta silenzioso — la pagina non effettua XHR, fetch né beacon analytics legati al contenuto dell’immagine.

Come funziona la decodifica QR?

La decodifica avviene interamente sul tuo dispositivo. Ogni immagine passa attraverso una pipeline fissa prima che il testo del payload venga restituito:

  1. Il file immagine (PNG, JPG, WebP o un frame della fotocamera) viene disegnato su un <canvas> HTML fuori schermo. L’API canvas restituisce i dati grezzi dei pixel come array di byte RGBA.
  2. La libreria jsQR converte l’array di pixel in una bitmap in scala di grigi e cerca i tre caratteristici quadrati del pattern di ricerca negli angoli del simbolo QR.
  3. Una volta localizzati i pattern di ricerca, il decoder calcola la trasformazione prospettica ed estrae la griglia completa dei moduli, leggendo ogni cella come 0 o 1 binario.
  4. La griglia dei moduli viene analizzata secondo le specifiche QR: prima vengono lette le informazioni di formato e versione, poi i moduli dati vengono de-interlacciati e viene applicata la correzione degli errori Reed-Solomon.
  5. Le parole di codice dati corrette vengono decodificate secondo la modalità del segmento (numerica, alfanumerica, byte o kanji), producendo la stringa di payload originale.
  6. Lo strumento analizza quindi il payload con un piccolo set di espressioni regolari per identificare il tipo di contenuto (URL, credenziali Wi-Fi, vCard e così via) e presenta il risultato con un pulsante d’azione appropriato.

Perché usare un lettore QR basato su browser?

  • I byte dell’immagine non lasciano mai il tuo dispositivo. Incolla un QR che nasconde una password Wi-Fi, un URL di staging interno o un vCard con il numero di telefono personale di qualcuno, e quel contenuto resta sul tuo computer. Altri lettori QR eseguono la decodifica su un server remoto e ti chiedono di caricare prima l’immagine — questo no.
  • Una volta caricata la pagina, la decodifica funziona offline. La libreria jsQR risiede nel tuo tab. Puoi disconnetterti dal Wi-Fi, trascinare un’immagine QR nella pagina e ottenere comunque il payload — utile in aereo, nei seminterrati e ovunque la rete aziendale blocchi gli scanner di terze parti.
  • Se il tuo desktop o laptop ha una webcam, puoi puntarla su un codice QR stampato e leggerlo senza installare un’app o sbloccare un telefono. Il flusso video resta nel browser e si ferma nel momento in cui un codice viene decodificato.
  • Il lettore riconosce URL, stringhe Wi-Fi, vCard, MeCard, mailto, SMS e payload geo e mostra un pulsante d’azione corrispondente. Apri un URL, copia la password Wi-Fi, salva la scheda contatto — qualunque cosa contenga il QR.

Usi comuni per un lettore di codici QR

Ogni volta che hai bisogno di vedere cosa dice davvero un codice QR senza puntarci sopra un telefono:

  • Debug dei codici appena generati. Incolla il QR prodotto dalla tua app (o scatta uno screenshot dal Generatore QR qui accanto) e conferma che l’URL o il payload codificato corrisponda a quanto previsto prima di inviarlo alla stampa, all’imballaggio o a un manifesto.
  • Recupero delle credenziali Wi-Fi. Scansiona il QR Wi-Fi dalla pagina di configurazione del router, dalla card di benvenuto di un hotel o dalla foto dell’annuncio di un appartamento e il lettore restituisce SSID, tipo di sicurezza e passphrase come testo normale che puoi copiare su un altro dispositivo.
  • Audit e accessibilità. Decodifica codici QR su documenti scansionati, etichette di prodotti, badge da conferenze o screenshot di post sui social per estrarne il contenuto in un foglio di calcolo, un registro di conformità o software assistivo — utile quando l’URL di destinazione è la vera affermazione sotto verifica.

Come appare la decodifica di un vero codice QR?

Prendi un codice QR Wi-Fi stampato sulla vetrina di un bar. Dietro il simbolo, il payload grezzo segue lo schema URI WIFI:: WIFI:S:CafeGuest;T:WPA;P:espresso2026;H:false;;. Fotografa il simbolo, trascina l’immagine nella zona di upload sopra e la pipeline si avvia: il canvas legge i pixel, jsQR individua i tre pattern di ricerca negli angoli, la trasformazione prospettica raddrizza la griglia, Reed-Solomon ripara i danni da riflessi o compressione, e il segmento in modalità byte produce la stringa URI. Il lettore rileva quindi il prefisso WIFI: e classifica il tipo come Wi-Fi, analizzando il nome della rete come CafeGuest, il tipo di sicurezza come WPA e la passphrase come espresso2026. Un pulsante Copia mette la password negli appunti in modo che tu possa incollarla nel selettore di rete del sistema operativo. Per un QR URL semplice contenente https://tools.ultim8soft.com, la stessa pipeline restituisce il badge tipo URL e un pulsante Apri che naviga verso la destinazione in un nuovo tab. In entrambi i casi, l’unica cosa avvenuta sulla rete è stato il caricamento della pagina — la decodifica è locale.

Questo lettore di codici QR è stato costruito per un solo scopo: mostrarti esattamente cosa codifica un codice QR, nel tuo browser, senza server in mezzo. Trascina un’immagine, incolla dagli appunti o lascia girare la webcam, e il contenuto decodificato con il suo tipo appare sullo schermo in meno di un secondo. I byte dell’immagine non vengono caricati. I frame della fotocamera non vengono registrati. Il payload decodificato non passa attraverso i log di nessun altro prima di tornare da te. Abbinalo al Generatore QR qui accanto quando hai bisogno di una conferma end-to-end che ciò che hai codificato è ciò che qualcun altro vedrà.

L’immagine viene caricata su un server?

No. L’immagine viene disegnata su un canvas HTML in memoria e decodificata interamente da JavaScript lato client in esecuzione nel tuo tab. Nessun pixel della tua immagine viene mai inviato a un server, registrato o memorizzato. Puoi confermarlo aprendo DevTools e osservando il pannello Rete mentre trascini un’immagine: nessun XHR, nessun fetch, nessun beacon analytics legato al contenuto del file.

Come funziona la scansione con la fotocamera?

Quando attivi la modalità fotocamera, il browser richiede il permesso di accedere alla fotocamera del dispositivo tramite la API standard getUserMedia. I frame video vengono catturati su un canvas fuori schermo a una risoluzione massima di 640×480 e passati a jsQR per la decodifica. Ogni frame viene scartato nel momento in cui arriva il successivo, e il flusso video viene fermato alla prima decodifica riuscita. Nessun frame viene registrato, nessun frame viene trasmesso, e la richiesta di permesso scatta solo quando attivi l’interruttore — non al caricamento della pagina.

Perché alcuni contenuti QR vengono rilevati automaticamente come Wi-Fi o vCard?

I payload QR per le credenziali Wi-Fi seguono il formato WIFI:S:ssid;T:tipo;P:password;;, e i vCard iniziano con BEGIN:VCARD. Questo lettore riconosce questi pattern insieme ad altri prefissi standard (mailto:, geo:, smsto:, MECARD:, https://) e classifica automaticamente il tipo di contenuto in modo che il pulsante d’azione corrisponda a ciò che vorresti fare con il payload.

Perché il mio codice QR non è stato scansionato?

Cause comuni: l’immagine è troppo piccola o a bassa risoluzione (~100×100 px è il minimo, 300×300+ scansiona in modo affidabile), il simbolo presenta gravi danni o è parzialmente oscurato da un logo senza sufficiente correzione degli errori, la zona silenziosa (il bordo bianco attorno ai moduli) è assente o ritagliata, oppure il contrasto tra moduli scuri e chiari è troppo basso. Per la modalità fotocamera, migliora l’illuminazione o avvicina il codice all’obiettivo — jsQR deve risolvere i moduli singoli con nitidezza per agganciare i pattern di ricerca.