io non sono sicuro che sarete in grado di raggiungere questo obiettivo, in quanto la quantità di informazioni di un codice QR può contenere è abbastanza limitato.
Prima di tutto, probabilmente vorrai memorizzare l'immagine come grezzo, poiché gli altri formati (numerici e alfanumerici) sono progettati per contenere testo/numeri e fornirebbero meno spazio per memorizzare l'immagine. Supponiamo che tu scelga il codice QR più grande possibile (versione 40), con il più piccolo livello di correzione degli errori, che può contenere fino a 2953 byte di informazioni binarie (see here).
Prima opzione, come suggerito, l'immagine viene memorizzata come bitmap. Questo formato non consente alcuna compressione e richiede (nel caso di un'immagine RGB senza canale alfa) 3 byte per pixel. Se prendiamo in considerazione la dimensione dell'intestazione del file (da 14 a 54 byte) e ignoriamo il padding (ogni riga di dati dell'immagine deve essere riempita a una lunghezza da un multiplo di 4), che consente di memorizzare all'incirca 2900/3 = 966 pixel. Se consideriamo un'immagine quadrata, questo rappresenta un bitmap 31x31, che è piccolo anche per un'immagine in miniatura (ad esempio, il mio avatar alla fine di questo post è di 32x32 pixel).
Seconda opzione, si utilizza JPEG per codificare l'immagine. Questo formato ha il vantaggio di utilizzare un algoritmo di compressione che può ridurre le dimensioni del file. Questa volta non esiste una formula esatta per ottenere le dimensioni di un'immagine che si adattano a 2.9kB, ma ho provato a utilizzare poche immagini quadrate e ridimensionarle fino a quando non si adattano a queste dimensioni, mantenendo un buon fattore di qualità (93): ciò fornisce una media di circa 60x60 pixel di immagini. (Su immagini così piccole, è normale non vedere un incredibile fattore di compressione tra jpeg e bmp, dato che l'intestazione del file in un file jpeg è molto più grande di un file bmp: circa 500 byte). Questo è meglio di bitmap, ma rimane piuttosto piccolo.
Infine, anche se si riesce a codificare l'immagine in questo QR Code, si incontrerà un altro problema: un codice QR di questo tipo è molto, molto difficile da scansionare con successo. In effetti, questo QR Code avrà una dimensione di 177x177 moduli (un "modulo" è un piccolo quadrato bianco o nero). Supponendo di eseguirne la scansione utilizzando uno smartphone che fornisce i cosiddetti fotogrammi "HD" (1280x720 pixel), ciascun modulo avrà una dimensione massima sul fotogramma di circa 4 pixel. Se si tiene conto del rumore della fotocamera, dell'aliasing e della sfocatura dovuti al fatto che l'utente non è mai perfettamente inattivo durante la scansione, la qualità dei frame di input renderà molto difficile per qualsiasi algoritmo di decodifica QR Code ottenere correttamente il QR Codice (non dimenticare che abbiamo impostato il livello di correzione degli errori al più basso all'inizio di questo!).
Anche se non è una buona notizia, spero che questo ti aiuti!
vorrei chiedere se si vuole veramente fare questo. St ructured append non è supportato da quasi nessun lettore e in pratica un codice QR di dimensioni massime non è leggibile dalla maggior parte dei dispositivi. Codifica un semplice collegamento ipertestuale all'immagine. –