Il codice di questa pagina non è partito.

Se apri index.html direttamente da una cartella, i moduli JavaScript restano bloccati, quindi non succederà niente quando sceglierai l'immagine da leggere. Servi invece la cartella via http:

powershell -ExecutionPolicy Bypass -File serve.ps1

Poi apri http://localhost:8080/.

Lettore di QR code e codici a barre — leggere un QR code da un'immagine o dalla fotocamera

Punta la fotocamera, o trascina qui una foto. Si legge qui, e da nessun'altra parte.

Lingua: Italiano
Vedi il codice
Qui non si caricano le immagini e i codici che ci sono dentro, mai. Non c'è nessun server.

Leggere un codice è aritmetica sui pixel, e i pixel sono già qui. Trovare il simbolo, correggere l'angolo, togliere la maschera, riparare i danni con Reed-Solomon e rileggere i bit: tutto questo succede in un paio di migliaia di righe di JavaScript dentro questa pagina, che puoi leggere. La fotocamera è la stessa promessa, non un'eccezione: un fotogramma arriva come pixel dentro questa scheda, viene esaminato e sparisce. Non viene registrato niente, non viene conservato niente, e questa pagina non ha nessuna funzione di rete con cui mandarlo via.

Verifica dal vivo: verifica in corso…

Offline: verifica in corso…

Non fidarti della nostra parola: apri gli strumenti per sviluppatori, tieni d'occhio il pannello Rete e leggi un codice con la fotocamera accesa. Non c'è una sola richiesta che porti con sé un fotogramma o un carattere di quello che diceva. Oppure stacca la connessione e leggi il codice lo stesso.

1 Mostragli il codice

Una fotografia, uno screenshot, o la fotocamera. Qualunque cosa scegli, l'immagine viene letta qui, in questa pagina, sulla tua macchina — non viene caricato niente, e un fotogramma della fotocamera viene esaminato e buttato, non registrato.

Puoi anche incollare un'immagine direttamente con Ctrl+V — uno screenshot di un codice che è già sullo schermo è la strada più veloce.

2 Che cosa dice

Mostrato, mai aperto. Un codice stampato è un indirizzo che nessuno può leggere, ed è proprio questo che rende conveniente a qualcuno attaccarci sopra un adesivo — quindi la stringa intera è qui da guardare, con l'host a cui arriveresti davvero tirato fuori su una riga sua.

Vedi come Markdown

Come leggere un QR code senza caricare l'immagine

  1. Dagli l'immagine. Trascina una foto o uno screenshot sul riquadro, incollane una direttamente, oppure premi il bottone della fotocamera. Più di una alla volta va benissimo: ognuna viene letta per conto suo e ognuna ha la sua risposta. Uno screenshot di un codice che è già sul tuo schermo è la strada più veloce e la più affidabile, perché lì non ci sono di mezzo né obiettivo, né angolo, né luce.
  2. Fai entrare tutto il simbolo, margine compreso. Il bianco intorno a un codice fa parte del codice: è così che un lettore capisce dove finisce il simbolo. Una foto ritagliata fino al bordo dei quadratini è di gran lunga il motivo più comune per cui uno non si legge. Riempire più o meno metà dell'inquadratura con il codice è giusto; più vicino di così e gli angoli escono dalla foto.
  3. Leggi l'indirizzo prima di decidere qualsiasi cosa. Il senso di leggere un codice su un manifesto, su un parchimetro o su una lettera è scoprire dove porta, e quella è proprio l'unica cosa che la fotocamera del telefono non ti lascia davvero fare. Qui l'host sta su una riga tutta sua. Se non è un nome che ti aspettavi, hai già quello per cui eri venuto e non resta niente da aprire.
  4. Prendi sul serio gli avvisi, soprattutto quelli sommessi. Un indirizzo http:// e basta, un nome in un alfabeto che non è quello che sembra, un accorciatore di link, o qualsiasi cosa prima di una @ nell'indirizzo: ognuno viene nominato dove compare. Nessuno di loro dimostra niente da solo. Tutti valgono dieci secondi prima di andarci.
  5. Se non si legge, cambia la luce prima di cambiare altro. Quasi tutti i fallimenti sono un problema di soglia: un riflesso che taglia il centro, un'ombra su un angolo, o uno schermo fotografato da un'angolazione che prende la retroilluminazione. Spostati in modo che il riflesso non cada sul codice, oppure accendi la luce della fotocamera. Se non basta, fai una foto piatta e frontale e trascina quella: un'immagine ferma riceve una ricerca molto più accurata di quanta ne possa ricevere un fotogramma dal vivo.
  6. Se la risposta ti sembra strana, guarda l'immagine campionata. Apri «come è stato letto questo» e guarda la griglietta. È quello che questa pagina ha creduto fosse il codice, ridisegnato a partire dai moduli campionati. Un lettore che ha letto male un simbolo e l'ha riparato fino a farne qualcosa di plausibile lo mostra lì, e da nessun'altra parte.

La versione lunga

Come creare un codice QR e provare che si legge Genera il codice, poi verificalo con il lettore dello stesso sito: il contenuto esatto, il vero link, a misura di stampa e da una foto, prima della tiratura. Tutto nel browser, niente caricato.

Domande

L'immagine viene caricata da qualche parte?

No, e nemmeno quello che ci viene letto dentro. L'immagine viene decodificata su un canvas di questa pagina e letta lì, da JavaScript servito da questo sito. Questo strumento non ha nessuna funzione di rete — non va mai a prendere niente e non manda mai niente — e la Content-Security-Policy della pagina elenca ogni indirizzo che può contattare, e nessuno di quelli è nostro. La prova più semplice è staccare la connessione: continua a funzionare.

La fotocamera registra qualcosa?

No. Un fotogramma arriva come pixel dentro questa scheda, viene disegnato su un canvas, esaminato e sovrascritto dal successivo un decimo di secondo dopo. Non viene scritto niente su disco e non resta niente. Il flusso si ferma appena premi ferma, quando la scheda passa in secondo piano e quando lasci la pagina — e la spia della tua fotocamera è l'indicatore di cui fidarti, perché nessuna pagina può spegnerla.

Perché mi fa vedere il link invece di aprirlo?

Perché è quella la parte utile. Un QR code è un indirizzo che non puoi leggere, ed è per questo che un adesivo sul codice di un parchimetro funziona: quando sai dove portava, ci sei già. Qui la stringa è stampata per intero, l'host è tirato fuori su una riga sua, e aprirlo è un bottone a parte che premi dopo averla letta. È un clic in più, ed è il clic di cui questo formato ha sempre avuto bisogno.

Che cosa sa leggere?

QR code di tutte le versioni, dalla 1 alla 40, a tutti e quattro i livelli di correzione d'errore, in modalità numerica, alfanumerica, byte e kanji, segnalando i set di caratteri ECI e i simboli di un gruppo concatenato invece di buttarli via in silenzio. Sul lato a barre: EAN-13, EAN-8, UPC-A, UPC-E, ITF-14, Interleaved 2 of 5, Code 128 e Code 39. Non legge Data Matrix, PDF417, Aztec né MaxiCode.

Non mi legge il codice. Cosa c'è che non va?

Nove volte su dieci è una di tre cose. Il margine bianco è tagliato via, e un lettore lo usa per capire dove finisce il simbolo. C'è un riflesso o un'ombra su una parte del codice, così nessuna soglia separa i quadratini scuri da quelli chiari. Oppure il codice è così piccolo nell'inquadratura che i suoi moduli non arrivano a due pixel. Cambia la luce, riempi circa metà inquadratura e scatta di fronte invece che di sbieco.

Riesce a leggere un codice rovinato o coperto in parte?

Spesso sì, ed è il formato che funziona come è stato progettato, non una bravura di qui. Ogni QR code porta con sé dati di controllo Reed-Solomon, e un simbolo fatto al livello H può perdere circa il 30% dei suoi moduli ed essere comunque ricostruito esatto. La pagina dice quante parole di codice ha dovuto riparare sotto «come è stato letto questo», così vedi quanto è andata vicina. Quello che non fa è tirare a indovinare: un simbolo rovinato oltre quello che il controllo regge viene segnalato come illeggibile invece che risposto male.

Perché dice che non può dirmi dove porta un link bit.ly?

Perché scoprirlo vorrebbe dire chiederlo a bit.ly, e quella è una richiesta di rete. Tutto il resto di quello che questa pagina sostiene si regge sul fatto che qui non c'è codice che contatti niente, e fare un'eccezione in sordina varrebbe meno della risposta. Quindi l'accorciatore viene nominato e quello che nasconde resta onestamente sconosciuto. Se vuoi risolverlo, incollalo in qualcosa che sia disposto a chiedere.

È sicuro leggere un QR code?

Leggerlo è sicuro. Dargli retta è il rischio, ed è un rischio vero: i codici attaccati sopra a quello buono sui parchimetri, sui tavoli dei ristoranti e sugli avvisi dei corrieri sono ormai abbastanza comuni da avere un nome. Quello che li fa funzionare è che nessuno può leggere un codice guardandolo. Leggerlo senza aprirlo — che è quello che fa questa pagina — toglie tutto quel vantaggio, e i dieci secondi che ci vogliono per guardare l'host sono l'intera difesa.

Cos'è la griglietta sotto ogni risultato?

I moduli che questa pagina ha campionato davvero dalla tua immagine, ridisegnati a un quadratino per modulo. Sta lì perché la lettura si possa controllare a occhio invece che crederci: se quella griglia somiglia al codice che hai fotografato, la risposta sopra è uscita dai pixel giusti. Quasi nessun lettore te lo fa vedere, ed è la differenza fra uno strumento che puoi controllare e uno a cui devi credere.

Legge più codici in una stessa immagine?

Uno per immagine, per ora. Trascinane più di una alla volta e ognuna viene letta per conto suo, e la fotocamera legge codice dopo codice mentre la muovi, tenendo ogni nuovo che non ha già visto. Una singola fotografia con dentro un foglio pieno di codici è un lavoro da ritaglio, o da fotocamera puntata su uno alla volta.

Perché chiama il mio codice a barre in un modo diverso da quello che avevo chiesto?

Perché un codice a barre non si porta dietro il proprio nome. UPC-A è un EAN-13 la cui prima cifra è uno zero, ITF-14 è Interleaved 2 of 5 con quattordici cifre e una cifra di controllo valida, e Code 128 nella sua modalità numerica non somiglia a nient'altro. Quello che questa pagina riporta è ciò che dicono le barre più ciò che conferma la cifra di controllo, che è tutto quello che il simbolo stesso sa.

Funziona offline?

Sì. Carica la pagina una volta, poi stacca la connessione e continua a funzionare, fotocamera compresa. È anche il modo più semplice di dimostrare che non viene caricato niente: un lettore che mandasse via la tua immagine per farla decodificare si fermerebbe nel momento in cui stacchi la spina.