Quanti byte posso inserire in un codice QR, con una bassa correzione degli errori?

3

Ho bisogno di inserire almeno 300 byte (o molto di più) in un codice QR e penso di poterlo fare mappando ogni byte nel carattere ISO / IEC 8859-1 associato che si trova qui.

Poiché ogni byte (1-255) avrà un solo carattere associato, posso testare l'utilità dell'idea con questa demo (il collegamento Email ha il QR denso a cui mi riferisco)

Dato che so che la risoluzione della fotocamera gioca un ruolo in questo caso, tra le altre cose di cui non sono a conoscenza, vorrei avere un'idea di quanti singoli personaggi posso inserire in un codice QR prima di incorrere in problemi. Sarebbe utile qualsiasi consiglio di dimensionamento o risoluzione.

L'altra ipotesi che ho è che un lettore QR può leggere ogni carattere ISO / IEC 8859-1 e passarlo alla mia app

    
posta random65537 24.07.2014 - 22:31
fonte

2 risposte

13

Un codice QR ha una gamma di versioni da 1 a 40. Queste informazioni indicano la quantità di dati memorizzati all'interno di esso. Versione 40 ha 177 righe e 177 colonne (in alcune decimazioni chiamate "moduli") per 31.329 pixel. Dovrebbe essere immediatamente chiaro a questo punto che questo è il massimo ipotetico che non tiene conto della correzione degli errori o di qualsiasi altra infrastruttura del codice QR stesso.

Una volta corretta la correzione degli errori, l'infrastruttura (i modelli fissi, per la quantità di correzione degli errori, il targeting, la frequenza, i modelli di maschera e così) e la correzione dell'errore minima vengono aggiunti, questo è massimo a 23.648 bit (2956 byte - correzione di errori di alto livello nella versione per è 10.208 bit 1276 byte).

Un codice a barre versione 40 con 1276 byte di dati:

Unavoltaentratinell'areadelcodiceabarreadaltacapacità,accedia colore 2d codici a barre. La tecnologia back e white barcode tende a ridurre al massimo la velocità (la data matrice può contenere solo 2.335 caratteri alfanumerici (non i byte)).

Per andare oltre i limiti di dimensione della versione 40 in un codice QR, è possibile utilizzare la Accodamento strutturato (codifica modo 0011), anche se una rapida ricerca di varie librerie di lettura di codici QR suggerisce che non è qualcosa che nessuno di loro supporta.

Un approccio non insolito per un'alternativa è invece quello di memorizzare un tag di dati nel codice a barre che quindi fa riferimento a una risorsa online che ha le informazioni complete. Nota che funziona male in situazioni offline.

Per gestire porzioni di dati molto più piccole (300 byte), 2400 bit di dati possono adattarsi a un codice QR versione 11 di correzione errori basso (ha 2592 bit di dati da utilizzare per 321 byte)

A questo punto, con molto più spazio per i dati tra la versione 11 e la versione 40, ci sono un certo numero di opzioni di codifica se ci sono difficoltà nell'ottenere il byte[] dai dati. Uno potrebbe codificarlo nel set di caratteri alfanumerici consentito dal codice QR (44 caratteri progettati per gli indirizzi Web - 11 bit per 2 caratteri nelle versioni 10-26) o numerici (12 bit per 3 cifre nelle versioni 10-26) come i due quelli più facili con cui lavorare.

    
risposta data 24.07.2014 - 22:53
fonte
2

Mettere troppi byte in un codice QR non è una buona idea. Il codice QR generato sarà grande e difficile da gestire e leggere.

Una strategia migliore è quella di collegare i dati in un URL e trasformare l'URL in un codice QR; non c'è limite alla risorsa collegata all'URL. Puoi inserire immagini, SVG, html, file di testo ...

Se il tuo codice QR deve rappresentare informazioni strutturate (ad esempio metadati), puoi inserire un documento XML su quell'URL.

Ci sono alcuni servizi che fanno questo per te, ad esempio: metaqrcode.com

Questa strategia ha alcuni pro e contro:
pro:

  • puoi modificare i dati senza ristampare qrcode
  • nessun grande QR-code
  • QR code più piccoli sono più facili da leggere

contro:

  • hai bisogno di una connessione Internet per leggere i dati
risposta data 03.05.2016 - 08:24
fonte

Leggi altre domande sui tag