Lector de Código QR

Decodifica un código QR desde una imagen subida o tu cámara, directamente en tu navegador — sin instalar apps, sin subir nada a un servidor.

228 visitas

Cómo se Decodifica Realmente un Código QR

Un código QR (Quick Response) no es una imagen de datos — es una cuadrícula de módulos en blanco y negro que codifica bits directamente, y volver a leerlo es un problema de visión por computadora de varios pasos, no una simple búsqueda. El primer paso es localizar el código: todo código QR lleva tres patrones de búsqueda distintivos (los anillos cuadrados anidados en tres esquinas), cada uno con una proporción de módulos oscuro-claro muy específica de 1:1:3:1:1 a lo largo de cualquier línea de escaneo que pase por su centro. Un decodificador escanea la imagen fila por fila buscando exactamente esa proporción, porque es estadísticamente casi imposible que aparezca por accidente en contenido de imagen ordinario, que es precisamente por qué se eligió como huella distintiva. Encontrar los tres patrones de búsqueda le indica al decodificador la rotación, escala y posición aproximada del código, incluso si la foto se tomó en ángulo.

Una vez orientado, el decodificador muestrea la cuadrícula en el centro de cada módulo para leerlo como un 1 o un 0, usa la franja de información de formato junto a los patrones de búsqueda para conocer el nivel de corrección de errores y el patrón de enmascarado aplicados, invierte la máscara XOR (los códigos QR mezclan deliberadamente sus propios datos con uno de ocho patrones para evitar largas secuencias de módulos idénticos, que de otro modo confundirían la búsqueda de patrones de búsqueda), y finalmente ejecuta la corrección de errores Reed-Solomon para reconstruir los bytes originales — la misma técnica matemática usada en CD y enlaces satelitales, que es por lo que un código QR aún puede leerse incluso cuando hasta un 30% está físicamente dañado u oculto, dependiendo del nivel de corrección de errores elegido al generarlo.

Esta herramienta realiza toda esa decodificación localmente en JavaScript usando una biblioteca de decodificación QR de código abierto, ya sea sobre una imagen fija que subas o sobre fotogramas de video en vivo extraídos uno a uno de la cámara de tu dispositivo y analizados de la misma manera. Nunca se envía nada a un servidor — decodificar un código QR que podría contener una contraseña de Wi-Fi o datos de contacto personales enteramente en el navegador, en lugar de subir la imagen a algún sitio primero, supone una diferencia de privacidad significativa.

Qué Significa Realmente el Texto Decodificado

  • Una URL que empieza con http:// o https:// obtiene un botón "Abrir Enlace"; cualquier otra cosa (texto plano, una cadena de credenciales Wi-Fi, una vCard) se muestra como texto decodificado sin procesar, ya que actuar automáticamente sobre contenido que no es una URL sería impredecible.
  • El escaneo por cámara revisa cada fotograma aproximadamente 60 veces por segundo (acorde a la frecuencia de fotogramas de animación del navegador) hasta encontrar un código válido, luego se detiene automáticamente — nunca graba ni almacena video.
  • Un código QR con un nivel de corrección de errores más alto (indicado como L/M/Q/H al crearse) tolera más daño físico pero almacena menos datos reales por unidad de tamaño del código, ya que más parte de la cuadrícula se dedica a redundancia en lugar de contenido.
  • Si la decodificación falla en una foto, las causas más comunes son el desenfoque de movimiento, un ángulo de visión extremo, o un código tan pequeño en el encuadre que los módulos individuales se mezclan entre sí — no un código fundamentalmente ilegible.

Preguntas Frecuentes

¿Cómo encuentra el escáner el código QR en una foto?

Busca los tres patrones de búsqueda distintivos — los anillos cuadrados anidados en tres esquinas — buscando su proporción única oscuro-claro de 1:1:3:1:1 a lo largo de las líneas de escaneo. Es extremadamente improbable que esa proporción aparezca por accidente, que es exactamente por qué funciona como una huella fiable incluso en fotos con mucho ruido visual.

¿Por qué se puede leer un código QR dañado o parcialmente cubierto?

Los códigos QR usan la corrección de errores Reed-Solomon, la misma técnica matemática usada en CD y transmisiones satelitales, que almacena datos redundantes junto al contenido real. Dependiendo del nivel de corrección de errores elegido al crear el código, hasta aproximadamente un 30% puede faltar o estar dañado y aun así decodificarse correctamente.

¿Se sube mi foto o la señal de mi cámara a algún sitio?

No. Tanto la ruta de imagen subida como la ruta de cámara en vivo se decodifican enteramente en tu navegador usando JavaScript — ninguna imagen o fotograma de video se envía jamás a un servidor.

¿Por qué la herramienta muestra un botón "Abrir Enlace" para algunos códigos pero no para otros?

Solo aparece cuando el texto decodificado empieza con http:// o https://. Otro contenido QR — texto plano, credenciales Wi-Fi, tarjetas de contacto — se muestra como texto sin procesar en su lugar, ya que actuar automáticamente sobre datos que no son una URL no sería predecible ni seguro.

¿Por qué falló el escaneo aunque claramente hay un código QR en la foto?

Las causas más comunes son el desenfoque de movimiento, un ángulo de visión pronunciado que distorsiona la geometría de la cuadrícula, o que el código sea demasiado pequeño en el encuadre para distinguir los módulos individuales — prueba con una foto más nítida, más frontal y más cercana en lugar de asumir que el código en sí es ilegible.

Comentarios

Aún no hay comentarios — ¡sé el primero en escribir uno!

Herramientas Similares