Vai al contenuto
megapromotingParliamone
Prodotti MEGA QR

Instrumente în browser Instrument public

Un codice QR. O un file che passa attraverso la luce.

MEGA QR include un generatore di codici e uno strumento di trasferimento ottico. Create un codice per un link, Wi‑Fi o contatto; per il trasferimento, uno schermo mostra una sequenza di codici che la camera dell'altro dispositivo ricostruisce in un file.

Generatorul MEGA QR: tipurile de cod, câmpul de conținut completat cu o adresă și codul QR generat alături
qr.megapromoting.com · il codice si compone nel browser, dall’indirizzo scritto nel campo del contenuto

MEGA QR

Dall’informazione al lavoro svolto.

01

Pregătești

Seleziona il contenuto del codice o il file che desideri trasmettere.

02

Afișezi

Il generatore produce l’immagine QR. Il trasferimento ottico mostra fotogrammi successivi.

03

Scanezi

La camera legge il codice o raccoglie i fotogrammi finché non riesce a ricostruire il file.

Dove diventa utile.

Generatore QR

Link, Wi-Fi, contatto e altri tipi di contenuto; esportazione PNG o SVG.

Trasferimento ottico

Dati trasmessi tra schermo e camera, senza una connessione di rete tra i dispositivi.

Elaborazione locale

La generazione e la ricostruzione avvengono nel browser, senza un account utente.

Il trasferimento ottico dipende da camera, luce, distanza e schermo. Il dispositivo che trasmette non riceve conferma della ricezione. Un codice mostrato pubblicamente può essere letto da chi lo vede.

MEGA QR nel dettaglio

Cosa potete fare con questo progetto.

MEGA QR sono due strumenti sullo stesso dominio, e il secondo non assomiglia affatto al primo. Il generatore crea codici QR per otto tipi di contenuto: link, testo, WiFi, biglietto da visita, WhatsApp, email, SMS, telefono e coordinate. Il trasferimento ottico sposta un file intero da uno schermo a una camera, senza cavo, senza Bluetooth, senza rete tra i due dispositivi.

Entrambi funzionano interamente nel browser. Le pagine non effettuano alcuna richiesta a terzi, e i due binari WebAssembly da cui dipende il trasferimento sono serviti da public/wasm/, non da un CDN — altrimenti la promessa che nulla esca dal dispositivo sarebbe falsa. Una password WiFi digitata nel generatore non arriva mai a un server.

L’idea che merita di essere compresa riguardo al trasferimento: uno schermo emette luce, una camera la legge, e il ricevitore non ha modo di chiedere nulla indietro. Non esiste un canale di ritorno. Da questo fatto deriva tutto il resto — i fotogrammi si descrivono da soli, il loro ordine non conta, qualsiasi sottoinsieme sufficientemente grande ricostruisce il file, e il mittente non può mai sapere se qualcosa è arrivato.

01

Generatore: otto tipi, PNG e SVG, logo al centro

Link, testo, WiFi, vCard, WhatsApp, email, SMS, telefono e geolocalizzazione. Quando si inserisce un logo, il livello di correzione degli errori passa forzatamente a H, il più alto — un logo apre un buco nell’area dati e il codice non sopravvive altrimenti. Il logo è limitato al 35% della superficie, con avviso dal 30%. L’esportazione è renderizzata separatamente dall’anteprima, così un PNG da 4096 px non perturba ciò che è sullo schermo.

02

I diacritici non si perdono

La libreria di generazione, qr-code-styling 1.9.2, converte il testo con charCodeAt(i) & 0xFF e tronca silenziosamente ogni diacritica romena e tutto il cirillico: „Ștefan Țurcanu” veniva scansionato indietro come „tefan urcanu”. Noi codifichiamo in UTF-8 prima che lo veda, così la sua troncatura non abbia più nulla da tagliare. I payload WiFi e vCard sono anch’essi escape-ati — un „;” in una password o una virgola in un nome di azienda altrimenti corrompevano il codice, senza alcun segno.

03

Trasferimento ottico: fontana di codici, non una sequenza

Il file viene impacchettato in una busta (nome, tipo MIME, dimensione, SHA-256), compresso con gzip se risulta più piccolo, poi passato su RaptorQ (RFC 6330). Ogni frame porta un intestazione fissa di 20 byte e uno o più pacchetti. Non conta quali frame si catturano, conta quanti: qualsiasi sottoinsieme abbastanza grande ricostruisce il file. Misurato in pixel renderizzati realmente, l’overhead di RaptorQ è 1,000x — i codici LT che usano i progetti di riferimento richiedono 1,15x.

04

Carosello: uno schermo pubblico su cui nessuno preme nulla

La seconda modalità di invio è una rotazione fissa che si ripete all’infinito, senza sessione e senza qualcuno che prema start. La lunghezza della rotazione viaggia in ogni frame, così un passante che punta la camera sa dal primo codice catturato quanto dura il tutto, invece di vedere una rotella. La configurazione di riferimento è 36 frame a 12 al secondo — una rotazione di tre secondi che trasporta 25 KB da un singolo codice bianco e nero semplice. Un menu intero, o l’orario completo di una stazione.

05

Si adatta alla camera che osserva, in tre assi separati

Il numero di codici sullo schermo, il colore e la versione QR sono tre vincoli diversi e si regolano separatamente. La scala di densità ha 29 livelli, da v10 su una singola banda (7 KB/s a 30 frame al secondo) fino a v39 su quattro bande a colori (959 KB/s). Esiste anche una scala completa senza colore, fino a 320 KB/s, perché una camera a cui muore la crominanza non deve restare bloccata su una sola banda.

Dati e funzionamento

Ciò che entra nel sistema. Ciò che deve essere verificato.

Nulla lascia il dispositivo
Il generatore costruisce il codice nella pagina. Il trasferimento ricostruisce il file nel browser del destinatario. Le pagine non fanno richieste a terzi, e i binari WebAssembly (raptorq per il codice fontana, zxing-wasm per la decodifica) sono serviti localmente. Non esiste un account, non esiste una sessione sul server, non esiste registrazione di ciò che avete trasmesso.
Un QR non è un segreto
Chiunque veda il codice abbastanza chiaramente può scansionarlo. Vale anche per il trasferimento ottico: uno schermo che mostra frame è visibile a qualsiasi camera nella stanza. Un ambiente isolato di rete non significa automaticamente che il trasferimento ottico sia consentito — è la politica dell’organizzazione a decidere, non la topologia della rete.
L’integrità si verifica, non si presuppone
La busta porta il SHA-256 completo del file originale, e l’intestazione porta i primi quattro byte dello stesso come somma di controllo rapida. Dopo la ricostruzione, il destinatario ricalcola l’hash completo e restituisce un errore di mancata corrispondenza se differisce. Un file che esce dal trasferimento è o bit per bit quello in entrata, oppure un fallimento dichiarato. Non esiste una terza variante.
Limite di 32 MB, e il suo motivo
Oltre 32 MB rifiutiamo il file alla selezione. Il codificatore RaptorQ materializza tutti i pacchetti in una volta e gira in modo sincrono sul thread principale — misurati 2,5 secondi per 32 MB su un computer, diverse volte di più su un telefono. In quell’intervallo il pulsante Stop è disegnato e non può essere premuto. Un rifiuto anticipato è più onesto di una scheda che muore all’80%.

Dall’esplorazione all’implementazione

Come prepariamo un progetto con MEGA QR.

01

Scegliamo quale dei due strumenti è la risposta

Un codice QR porta a contenuti brevi e, se è un link, a una pagina che potete cambiare in seguito — il codice stampato non cambia da solo la propria destinazione. Il trasferimento ottico sposta un file tra due dispositivi che non hanno il permesso o non possono comunicare via rete. Sono compiti diversi e la confusione tra essi è la più frequente.

02

Fissiamo le condizioni fisiche

Per la stampa: contrasto, dimensione finale, area libera attorno, testato alla dimensione alla quale verrà incollato. Per il trasferimento: quanto grande cade un modulo sul sensore della camera. Sotto un modello duro di lente (griglia di crominanza sfalsata di un pixel più una sfocatura 3x3) il colore restituisce tutti e tre i codici a 4 pixel del dispositivo per modulo e assolutamente nulla a 2. Quello è il vero confine, ed è per questo che il colore è una scelta dell’uomo, non del controller.

03

Testiamo sui dispositivi che verranno effettivamente usati

La nostra suite attraversa una catena di camere autentica — i frame sono scritti come YUV 4:2:0 e dati a Chrome come webcam falsa, quindi il sottocampionamento della crominanza è reale. Ciò che non ha: obiettivo, riflessi, movimento, otturatore rolling. Dieci minuti con un telefono vero danno la prima cifra onesta e sono il passo successivo della nostra lista di lavoro, non un dettaglio.

Domande che meritano di essere chiarite.

Quanto velocemente passa effettivamente un file?

Attraverso una catena di camera simulata, a 10 frame al secondo, con i codici che riempiono la maggior parte dell’immagine a 3-5 pixel di camera per modulo, tutte e quattro le configurazioni sono risultate con hash verificato: bianco e nero su una banda 15,8 KB/s, bianco e nero su quattro bande 37,7 KB/s, colore su una banda 40,1 KB/s, colore su quattro bande 115,7 KB/s. Il colore su una sola banda batte il bianco e nero su quattro. Il tasso di errore è stato zero ovunque. Tenga presente da dove arrivano le cifre: frame geometrici perfetti, senza obiettivo e senza movimento. Un telefono vero non è ancora stato messo davanti a loro.

Cosa richiede dalla camera e dalla luce?

La camera è richiesta a 1920x1080 a 30 frame al secondo, con preferenza per quella posteriore; se Android rifiuta il vincolo, si passa a qualsiasi camera. Ogni frame acquisito viene ridotto a 1280 px sul lato lungo prima della decodifica. Ciò che conta davvero non è la risoluzione, ma quanti pixel del sensore cadono su un modulo: il bianco e nero ha bisogno di circa tre, il colore di circa il doppio, perché la catena video del telefono di solito fornisce 4:2:0 e dimezza entrambi i piani di colore in entrambe le direzioni. Il dettaglio fine di colore è la prima cosa che una camera reale distrugge.

Perché la modalità automatica è più lenta di quanto possa fare la macchina?

Perché l’unica cosa che il dispositivo che invia può misurare è quanti simboli hanno prodotto i propri codificatori rispetto a quanti ne sono stati richiesti — un’affermazione su un processore, non su una camera a due palmi di distanza. Un laptop non perde mai un gradino, quindi un controller che legge «zero errori» come «continua» sale fino in cima e mette sullo schermo quattro codici che cambiano trenta volte al secondo, che nulla può scansionare. Questo è stato davvero consegnato una volta e una persona l’ha trovato in un minuto. Ora la modalità automatica è plafonata a una banda, bianco e nero, versione 26 e 15 frame al secondo. 15 non è un numero tondo: una camera di telefono registra a 30 e non è sincronizzata con lo schermo, quindi un frame deve rimanere visualizzato per due esposizioni consecutive — 67 ms — per essere catturato interamente.

Cosa succede se il ricevitore perde dei frame?

Niente di speciale, ed è proprio il punto. Non esistono numeri d’ordine da recuperare. Il codificatore produce pacchetti di riparazione in proporzione di 2x rispetto ai simboli sorgente — misurato su questo codice: al 60% di perdita di frame, un set di circa 2x K recupera 2 MB senza che la lista venga mai riprodotta una seconda volta. Il limite assoluto è 60.000 pacchetti; oltre questo il mittente semplicemente ripete la lista più spesso, il che costa tempo, non memoria. Se comunque qualcosa va storto, l’hash SHA-256 lo intercetta e il trasferimento fallisce dichiaratamente invece di consegnare un file corrotto.

Il mittente sa quando il file è arrivato?

No, e non è una svista. Non esiste un canale di ritorno: uno schermo emette luce, e la luce non torna indietro con conferme. Il completamento si vede sul dispositivo che riceve. Qualsiasi interfaccia che pretendesse altro mentirebbe, e abbiamo già avuto una volta un test che offriva esattamente questa prova che il prodotto non ha mai: la simulazione calcolava il proprio tasso di mancato riconoscimento da ciò che la camera simulata riusciva a risolvere. Quello è un canale di ritorno. Quando un test e il codice consegnato non concordano su ciò che si può sapere, è il test a mentire.

Qual è la dimensione massima del file e perché proprio così?

32 MB, rifiutato alla selezione se è più grande. Il limite non deriva dal protocollo, ma dalla memoria di una scheda del browser: RaptorQ materializza tutti i pacchetti in una volta, e un file da 50 MB con rapporto 2x significherebbe 150 MB di array vivi, abbastanza da uccidere la scheda di un telefono. La codifica gira in modo sincrono sul thread principale, misurata a 2,5 secondi per 32 MB su computer. Ciò che viaggia effettivamente non è la dimensione del file: il contenuto è compresso con gzip prima di RaptorQ, quindi una tabella da 1 MB è pochi kilobyte di pacchetti, e una fotografia da 1 MB è un megabyte di pacchetti.

Mi serve un account o internet?

Né l’uno né l’altro. Non esiste un account e non esiste un abbonamento. Dopo la prima visita le pagine funzionano senza rete, perché tutto — inclusi i due binari WebAssembly — viene servito dal proprio dominio. Vale la pena dire anche che cosa abbiamo imparato lungo il percorso: un service worker registrato non significa supporto offline. Al primo caricamento la pagina e le sue risorse vengono recuperate prima che il worker prenda il controllo, quindi il suo handler non le vede mai. La pagina segnala le proprie risorse tramite Performance API invece di presumere.

Esempio illustrativo

L’orario di una stazione, su uno schermo su cui nessuno preme nulla

Uno scenario di utilizzo, senza dati del cliente o risultati commerciali attribuiti.

Situazione iniziale

Uno schermo in una stazione o una vetrina deve dare ai passanti un file — l’orario completo, il menu, un modulo — senza WiFi pubblico, senza account e senza che qualcuno prema qualcosa.

Come funziona

Lo schermo esegue un carosello: 36 fotogrammi a 12 al secondo, un ciclo di tre secondi che si ripete all’infinito. La densità è fissa per la durata del carosello, perché un ciclo è una promessa solo se la sua lunghezza resta tale. La lunghezza del ciclo viaggia in ogni fotogramma, così un telefono che cattura il primo codice sa subito quanto dura tutto.

Rezultatul

Il passante filma tre secondi e ottiene 25 KB ricostruiti nel suo browser, verificati con SHA-256, da un unico semplice codice bianco e nero. Lo schermo non sa di essere stato letto e non può saperlo.

Ce este necesar:Un ecran care poate ține un cadru afișat 83 ms fără sfâșiere, lumină în care codul nu e spălat de reflexii, și o cameră care rezolvă aproximativ trei pixeli de senzor per modul. Cifra de 25 KB e derivată din aceleași funcții pe care le folosește expeditorul, nu tastată de mână alături de ele.

Possibilità di collaborazione

MEGA QR, nel contesto della tua organizzazione.

Punti di accesso e trasferimento locale

Codici per l’accesso a informazioni pubbliche, istruzioni o contatti; trasferimento ottico di file tra dispositivi compatibili, con valutazione delle politiche di sicurezza dell’istituzione.

Imprese private

Definiamo un pilot attorno a un processo reale: utenti, dati, integrazioni, costi e criteri di accettazione. L’estensione segue dopo la valutazione del risultato.

Istituzioni e società statali

Stabiliamo i requisiti di accessibilità, hosting, protezione dei dati e interoperabilità. Ogni connessione con servizi AGE o STISC richiede la validazione dell’ammissibilità, dell’accesso e delle approvazioni.

Questi sono scenari di adattamento, non dichiarazioni su contratti o partenariati esistenti. Le funzioni proposte si confermano nell’ambito di lavoro del progetto.

Discută un pilot

Parte di un ecosistema.

Cosa vorresti che funzionasse meglio?

Raccontaci il tuo processo. Insieme stabiliamo cosa vale la pena costruire, cosa possiamo collegare e come verifichiamo il risultato.

Parliamone