QR Studio
Generador de códigos QR que funciona entero en el navegador y sin conexión. Ocho tipos de QR, diseño con colores, degradados y logo, y un verificador que lee cada QR que generas y lo pone a prueba impreso pequeño, desenfocado y con poca luz. Además, QR artístico con tu foto, un lector que avisa de enlaces fraudulentos antes de abrirlos, lotes desde CSV, PDF imprimible a tamaño exacto e historial cifrado opcional. Empezó como un proyecto para aprender.




- conexiones externas
- 0
- conexiones externas
- pruebas de escaneo por QR
- 4
- pruebas de escaneo por QR
- tests
- 474
- tests
- idiomas
- 3
- idiomas
Qué hace
- Ocho tipos de QR. Enlace, texto, correo, teléfono, SMS, Wi-Fi, contacto y evento de calendario.
- Diseño. Seis estilos de punto, colores sólidos o degradados, esquinas personalizables y logo central. La corrección de errores sube sola al poner un logo, y avisa si el contraste es bajo.
- Comprueba que escanea. Cada vez que cambias algo, lee el QR con un lector real y lo prueba impreso pequeño, desenfocado y con poca luz. Te dice si escanea bien, si es frágil o si no se lee, y a partir de qué tamaño imprimirlo.
- QR artístico. Funde una foto con el QR y busca sola la intensidad que deja ver más foto sin dejar de escanear.
- Lector seguro. Lee un QR con la cámara o una imagen y enseña adónde lleva antes de abrir nada, con avisos de marcas imitadas, dominios raros, acortadores o descargas de programas.
- Imprimir y en lote. PDF a tamaño exacto (solo el QR, tarjeta Wi-Fi u hoja de pegatinas) y muchos QR a la vez desde un CSV o JSON, en ZIP o en una hoja de etiquetas.
- Nada sale del navegador. Un indicador en la cabecera cuenta en directo las conexiones externas, y debería marcar siempre 0. El historial está apagado por defecto y, si lo activas, puede ir cifrado con una frase de paso.
Cómo está hecho
Capas que no se mezclan
Nuxt 4 en modo solo cliente, con cuatro capas: dominio, aplicación, infraestructura y presentación. El dominio y los casos de uso no conocen Vue ni ninguna librería. qr-code-styling, jsQR y el canvas solo aparecen en infraestructura.
Un lector para comprobar lo que generas
jsQR decodifica el QR que se acaba de dibujar y comprueba que el texto leído es exactamente el que pusiste. Después lo degrada (lo encoge, lo desenfoca, le baja el contraste y le mete ruido) y lo vuelve a leer. Todo ocurre en un Web Worker.
Sin dependencias para los archivos
El PDF, el ZIP y el cifrado del historial no usan librerías: un escritor de PDF propio, un ZIP con CompressionStream y Web Crypto con PBKDF2 y AES-GCM.
Problemas que resolví
- QR normales marcados como frágiles. Los primeros veredictos fallaban con QR negros sobre blanco. Faltaba la zona blanca alrededor, y
jsQRes muy sensible a los píxeles por módulo. Lo recalibré con 8 contenidos a 10 tamaños. - Un fallo en
jsQR. La tabla de la versión 23 traía un 74 donde va un 78, y esos QR salían como ilegibles. Lo arreglé con un parche. - QR artístico lento. Componer a 2048 px tardaba unos 10 segundos y el modo Auto unos 14. Ahora tardan unos 0,35 y 3 segundos.
- Trucos de phishing. La revisión encontró enlaces que se colaban, como
paypa1-login.comojava\nscript:. Ahora los detecta.