Saltar al contenido
megapromotingVamos a hablar
Productos MEGA QR

Herramientas en el navegador Instrument public

Un código QR. O un archivo que pasa por la luz.

MEGA QR incluye un generador de códigos y una herramienta de transferencia óptica. Creas un código para un enlace, Wi‑Fi o contacto; para la transferencia, una pantalla muestra una sucesión de códigos que la cámara del otro dispositivo reconstruye en un archivo.

Generatorul MEGA QR: tipurile de cod, câmpul de conținut completat cu o adresă și codul QR generat alături
qr.megapromoting.com · el código se compone en el navegador, a partir de la dirección escrita en el campo de contenido

MEGA QR

De la información al trabajo hecho.

01

Pregătești

Eliges el contenido del código o el archivo que quieres transmitir.

02

Afișezi

El generador produce la imagen QR. La transferencia óptica muestra fotogramas sucesivos.

03

Scanezi

La cámara lee el código o reúne los fotogramas hasta que puede reconstruir el archivo.

Dónde resulta útil.

Generador QR

Enlace, Wi‑Fi, contacto y otros tipos de contenido; exportación PNG o SVG.

Transferencia óptica

Datos transmitidos entre la pantalla y la cámara, sin una conexión de red entre dispositivos.

Procesamiento local

La generación y la reconstrucción se realizan en el navegador, sin una cuenta de usuario.

La transferencia óptica depende de la cámara, la luz, la distancia y la pantalla. El dispositivo que transmite no recibe la confirmación de recepción. Un código mostrado públicamente puede ser leído por quienes lo ven.

MEGA QR en detalle

Qué puedes hacer con este proyecto.

MEGA QR son dos herramientas en el mismo dominio, y la segunda no se parece en absoluto a la primera. El generador crea códigos QR para ocho tipos de contenido: enlace, texto, WiFi, tarjeta de visita, WhatsApp, email, SMS, teléfono y coordenadas. La transferencia óptica mueve un archivo completo de una pantalla a una cámara, sin cable, sin Bluetooth, sin red entre los dos dispositivos.

Ambas funcionan íntegramente en el navegador. Las páginas no hacen ninguna solicitud a terceros, y los dos binarios WebAssembly de los que depende la transferencia se sirven desde public/wasm/, no desde un CDN; de lo contrario, la promesa de que nada sale del dispositivo sería falsa. Una contraseña de WiFi escrita en el generador nunca llega a un servidor.

La idea que merece la pena entender sobre la difusión: una pantalla emite luz, una cámara la lee, y el receptor no tiene forma de pedir nada a cambio. No existe canal de retorno. De ese hecho se deriva todo lo demás: los fotogramas se describen por sí solos, su orden no importa, cualquier subconjunto suficientemente grande reconstruye el fichero, y el remitente nunca puede saber si ha llegado algo.

01

Generador: ocho tipos, PNG y SVG, logo en el centro

Link, text, WiFi, vCard, WhatsApp, email, SMS, teléfono y geolocalización. Cuando añades un logo, el nivel de corrección de errores pasa forzosamente a H, el más alto — un logo hace un agujero en la zona de datos y el código no sobrevive de otra forma. El logo está limitado al 35% de la superficie, con aviso desde el 30%. La exportación se renderiza por separado de la vista previa, para que un PNG de 4096 px no perturbe lo que hay en pantalla.

02

Los diacríticos no se pierden

La biblioteca de generación, qr-code-styling 1.9.2, convierte su texto con charCodeAt(i) & 0xFF y corta en silencio cada diacrítico rumano y también el cirílico: «Ștefan Țurcanu» se escaneaba de vuelta como «tefan urcanu». Nosotros codificamos en UTF-8 antes de que lo vea, para que su truncado ya no tenga nada que cortar. Los payloads WiFi y vCard también se escapan — un «;» en una contraseña o una coma en un nombre de empresa corrompían de otro modo el código, sin ninguna señal.

03

Transferencia óptica: fuente de códigos, no una secuencia

El archivo se empaqueta en un sobre (nombre, tipo MIME, tamaño, SHA-256), se comprime con gzip si queda más pequeño, y luego se pasa por RaptorQ (RFC 6330). Cada fotograma lleva un encabezado fijo de 20 octetos y uno o varios paquetes. No importa qué fotogramas atrapes, importa cuántos: cualquier subconjunto lo bastante grande reconstruye el archivo. Medido por píxeles renderizados reales, la sobrecarga de RaptorQ es 1,000x — los códigos LT que usan los proyectos de referencia requieren 1,15x.

04

Carrusel: una pantalla pública sobre la que nadie pulsa nada

El segundo modo de envío es una ronda fija que se repite sin fin, sin sesión y sin nadie que pulse start. La longitud de la ronda viaja en cada fotograma, así que un transeúnte que apunte la cámara sabe desde el primer código captado cuánto dura todo, en lugar de ver una rueda. La configuración de referencia es 36 fotogramas a 12 por segundo — una ronda de tres segundos que transporta 25 KB desde un único código blanco y negro simple. Un menú completo, o el horario completo de una estación.

05

Se adapta a la cámara que mira, en tres ejes separados

El número de códigos en pantalla, el color y la versión QR son tres limitaciones distintas y se ajustan por separado. La escala de densidad tiene 29 pasos, desde v10 en una sola banda (7 KB/s a 30 fotogramas por segundo) hasta v39 en cuatro bandas en color (959 KB/s). También existe una escala completa sin color, hasta 320 KB/s, porque una cámara a la que se le muere la crominancia no debe quedarse bloqueada en una sola banda.

Datos y funcionamiento

Qué entra en el sistema. Qué hay que verificar.

Nada sale del dispositivo
El generador construye el código en la página. La transferencia reconstruye el archivo en el navegador del receptor. Las páginas no hacen solicitudes a terceros, y los binarios WebAssembly (raptorq para el código fountain, zxing-wasm para la decodificación) se sirven localmente. No existe cuenta, no existe sesión en el servidor, no existe registro de lo que has transmitido.
Un QR no es un secreto
Cualquiera que vea el código con suficiente claridad puede escanearlo. Eso también vale para la transferencia óptica: una pantalla que muestra fotogramas es visible para cualquier cámara de la sala. Un entorno aislado de red no significa automáticamente que la transferencia óptica esté permitida — la política de la organización es la que decide, no la topología de la red.
La integridad se verifica, no se supone
El sobre lleva el SHA-256 completo del archivo original, y el encabezado lleva sus primeros cuatro octetos como suma de control rápida. Tras la reconstrucción, el receptor recalcula el hash completo y arroja un error de discrepancia si difiere. Un archivo que sale de la transferencia es o bien bit a bit el mismo que el de entrada, o bien un fallo declarado. No existe una tercera variante.
Límite de 32 MB, y su motivo
Por encima de 32 MB rechazamos el archivo en la selección. El codificador RaptorQ materializa todos los paquetes de una vez y se ejecuta de forma sincronizada en el hilo principal —medido en 2,5 segundos para 32 MB en un ordenador, varias veces más en un teléfono. Durante ese intervalo el botón Stop se dibuja y no se puede pulsar. Un rechazo temprano es más honesto que una pestaña que muere al 80%.

De la exploración a la implementación

Cómo preparamos un proyecto con MEGA QR.

01

Elegimos cuál de las dos herramientas es la respuesta

Un código QR lleva a contenido breve y, si es un enlace, a una página que luego puedes cambiar —el código impreso no cambia por sí solo de destino. La transferencia óptica mueve un archivo entre dos dispositivos que no tienen permiso o no pueden comunicarse por red. Son tareas distintas y la confusión entre ellas es la más frecuente.

02

Fijamos las condiciones físicas

Para impresión: contraste, tamaño final, zona libre alrededor, probado al tamaño al que se pegará. Para transferencia: cuánto cae un módulo sobre el sensor de la cámara. Bajo un modelo duro de lente (rejilla de crominancia desplazada un píxel más un desenfoque 3x3) el color devuelve los tres códigos a 4 píxeles de dispositivo por módulo y absolutamente nada a 2. Ese es el límite real, y por eso el color es una elección humana, no del controlador.

03

Probamos en los dispositivos que se usarán de verdad

Nuestra suite pasa por una cadena de cámaras auténtica —los fotogramas se escriben como YUV 4:2:0 y se dan a Chrome como webcam falsa, así que el submuestreo de crominancia es real. Lo que no tiene: objetivo, reflejos, movimiento, obturador rodante. Diez minutos con un teléfono real dan la primera cifra honesta y son el siguiente paso de nuestra lista de trabajo, no un detalle.

Preguntas que vale la pena aclarar.

¿Qué tan rápido pasa realmente un archivo?

A través de una cadena de cámara simulada, a 10 fotogramas por segundo, con los códigos llenando la mayor parte de la imagen a 3-5 píxeles de cámara por módulo, las cuatro configuraciones salieron con hash verificado: blanco y negro en una banda 15,8 KB/s, blanco y negro en cuatro bandas 37,7 KB/s, color en una banda 40,1 KB/s, color en cuatro bandas 115,7 KB/s. El color en una sola banda supera al blanco y negro en cuatro. La tasa de fallos fue cero en todas partes. Ten en cuenta de dónde salen las cifras: fotogramas geométricos perfectos, sin objetivo y sin movimiento. Un teléfono real aún no se ha puesto delante de ellos.

¿Qué exige de la cámara y de la luz?

Se exige a la cámara 1920x1080 a 30 fotogramas por segundo, con preferencia por la trasera; si Android rechaza la restricción, se cae a cualquier cámara. Cada fotograma capturado se reduce a 1280 px en el lado largo antes de la decodificación. Lo que realmente importa no es la resolución, sino cuántos píxeles de sensor caen sobre un módulo: el blanco y negro necesita aproximadamente tres, el color aproximadamente el doble, porque la cadena de vídeo del teléfono normalmente entrega 4:2:0 y reduce a la mitad ambos planos de color en ambas direcciones. El detalle fino de color es lo primero que una cámara real destruye.

¿Por qué el modo automático es más lento de lo que puede la máquina?

Porque lo único que el dispositivo que envía puede medir es cuántos símbolos han producido sus propios codificadores frente a cuántos se le pidieron —una afirmación sobre un procesador, no sobre una cámara a dos palmos. Un portátil nunca pierde un escalón, así que un controlador que lee «cero fallos» como «sigue» sube hasta arriba y pone en pantalla cuatro códigos que cambian treinta veces por segundo, que nada puede escanear. Eso sí se entregó una vez y una persona lo encontró en un minuto. Ahora el modo automático está limitado a una banda, blanco y negro, versión 26 y 15 fotogramas por segundo. 15 no es una cifra redonda: una cámara de teléfono registra a 30 y no está sincronizada con la pantalla, así que un fotograma debe permanecer mostrado dos exposiciones consecutivas —67 ms— para ser captado entero.

¿Qué pasa si el receptor pierde fotogramas?

Nada especial, y ese es precisamente el punto. No hay números de orden que recuperar. El codificador produce paquetes de reparación en una proporción de 2x respecto a los símbolos fuente — medido en este código: con 60% de pérdida de frames, un conjunto de aproximadamente 2x K recupera 2 MB sin que la lista se reproduzca nunca por segunda vez. El límite absoluto es de 60.000 paquetes; por encima de él, el remitente simplemente reinicia la lista más a menudo, lo que cuesta tiempo, no memoria. Si aun así algo sale mal, el hash SHA-256 lo detecta y la transferencia falla de forma declarada en lugar de entregar un archivo corrupto.

¿El emisor sabe cuándo ha llegado el archivo?

No, y no es una omisión. No existe canal de retorno: una pantalla emite luz, y la luz no vuelve con confirmaciones. La finalización se ve en el dispositivo que recibe. Cualquier interfaz que dijera lo contrario mentiría, y ya tuvimos una vez una prueba que ofrecía exactamente esa evidencia que el producto nunca tiene: la simulación calculaba su tasa de fallos a partir de lo que la cámara simulada conseguía resolver. Ese es un canal de retorno. Cuando una prueba y el código entregado no coinciden sobre lo que se puede saber, la prueba es la que miente.

¿Qué tamaño máximo tiene el archivo y por qué tanto?

32 MB, rechazado en la selección si es mayor. El límite no viene del protocolo, sino de la memoria de una pestaña del navegador: RaptorQ materializa todos los paquetes de una vez, y un archivo de 50 MB con relación 2x implicaría 150 MB de tablas vivas, suficiente como para matar la pestaña de un teléfono. La codificación se ejecuta de forma síncrona en el hilo principal, medida en 2,5 segundos para 32 MB en el ordenador. Lo que viaja realmente no es el tamaño del archivo: el sobre se comprime con gzip antes de RaptorQ, así que una tabla de 1 MB son unos pocos kilobytes de paquetes, y una fotografía de 1 MB es un megabyte de paquetes.

¿Necesito una cuenta o internet?

Ni una cosa ni la otra. No hay cuenta y no hay suscripción. Después de la primera visita las páginas funcionan sin red, porque todo —incluidos los dos binarios WebAssembly— se sirve desde su propio dominio. También vale la pena decir lo que hemos aprendido en el camino: un service worker registrado no significa soporte offline. En la primera carga la página y sus recursos se traen antes de que el worker tome el control, así que su handler nunca los ve. La página reporta sus propios recursos mediante la Performance API en lugar de suponer.

Ejemplo ilustrativo

El horario de una estación, en una pantalla a la que nadie pulsa nada

Un escenario de uso, sin datos de cliente ni resultados comerciales atribuidos.

Situación inicial

Una pantalla en una estación o un escaparate debe dar a los transeúntes un archivo —el horario completo, el menú, un formulario— sin WiFi pública, sin cuenta y sin que nadie pulse nada.

Cómo funciona

La pantalla ejecuta un carrusel: 36 cuadros a 12 por segundo, una vuelta de tres segundos que se repite sin fin. La densidad es fija durante el carrusel, porque una vuelta solo es una promesa si su longitud se mantiene. La longitud de la vuelta viaja en cada cuadro, así que un teléfono que capta el primer código sabe al instante cuánto dura todo.

Rezultatul

El transeúnte graba tres segundos y obtiene 25 KB reconstruidos en su navegador, verificados con SHA-256, a partir de un solo código blanco y negro simple. La pantalla no sabe que fue leída y no puede saberlo.

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.

Posibilidades de colaboración

MEGA QR, en el contexto de tu organización.

Puntos de acceso y transferencia local

Códigos para acceso a información pública, instrucciones o contactos; transferencia óptica de archivos entre dispositivos compatibles, con evaluación de las políticas de seguridad de la institución.

Empresas privadas

Definimos un piloto en torno a un proceso real: usuarios, datos, integraciones, costes y criterios de aceptación. La ampliación sigue después de evaluar el resultado.

Instituciones y empresas públicas

Establecemos los requisitos de accesibilidad, alojamiento, protección de datos e interoperabilidad. Cualquier conexión con servicios AGE o STISC requiere la validación de la elegibilidad, el acceso y las aprobaciones.

Estos son escenarios de adaptación, no declaraciones sobre contratos o colaboraciones existentes. Las funciones propuestas se confirman en el ámbito de trabajo del proyecto.

Habla de un piloto

Parte de un ecosistema.

¿Qué te gustaría que funcionara mejor?

Cuéntanos tu proceso. Juntos decidimos qué merece la pena construir, qué podemos conectar y cómo verificamos el resultado.

Vamos a hablar