Conceptos básicos de QR

Cómo funcionan realmente los códigos QR: de los píxeles a los datos

Cómo un código QR convierte una cuadrícula de cuadrados en blanco y negro en un enlace, un mensaje o los datos de una red Wi-Fi — el proceso de escaneo y decodificación explicado de forma sencilla.

Entender cómo funcionan los códigos QR es seguir un pequeño viaje: una cámara ve una cuadrícula de cuadrados en blanco y negro, se orienta, muestrea cada cuadrado como un 1 o un 0 y reconstruye el mensaje original — todo en una fracción de segundo.

Parece magia cuando apuntas el teléfono a un cartel y aparece una página web. Pero no hay magia — solo una tubería bellamente diseñada que convierte píxeles en datos. Recorrámosla paso a paso, desde el momento en que la luz llega a la cámara hasta el instante en que aparece el enlace. 🐾

¿De qué está hecho un código QR?

Un código QR es una cuadrícula de pequeños cuadrados llamados módulos. Cada módulo es oscuro o claro, y esa oscuridad o claridad representa un único dígito binario — un bit. Oscuro suele significar 1; claro suele significar 0. Encadena suficientes de esos bits y tienes bytes, y a partir de los bytes puedes construir texto, enlaces o cualquier otra cosa.

Si los bits y los bytes te resultan confusos, nuestra introducción a binario, bits y bytes es un buen punto de partida. La versión corta: todo en un código QR son, en última instancia, unos y ceros.

Paso 1: ¿Cómo encuentra el código un escáner?

Antes de poder leer nada, el escáner tiene que responder a dos preguntas: ¿Dónde está el código? y ¿En qué dirección está girado? Los códigos QR resuelven esto con tres grandes cuadrados anidados en las esquinas, llamados patrones de posición (finder patterns).

Cada patrón de posición tiene una proporción muy concreta de oscuro-claro-oscuro cuando trazas una línea a través de él — 1:1:3:1:1. Esa proporción es rara en las imágenes corrientes, así que el software puede barrer la imagen, detectar tres de estos marcadores y saber al instante que está mirando un código QR. Como son tres (y no cuatro), el escáner también puede saber qué esquina falta y, por tanto, cómo está girado el código.

Esta es la parte "Quick" (rápida) de Quick Response: esos tres cuadrados de las esquinas permiten que el código se lea desde casi cualquier ángulo, incluso boca abajo.

Paso 2: ¿Cómo alinea la cuadrícula?

Encontrar el código no basta — el escáner necesita superponer una cuadrícula precisa para saber exactamente dónde se sitúa cada módulo. Varias características ayudan aquí:

  • Patrones de temporización: una línea punteada de módulos oscuros y claros alternos que corre entre los patrones de posición, actuando como una regla que le indica al escáner el tamaño y el número de módulos.
  • Patrones de alineación: cuadrados anidados más pequeños (presentes en todos salvo en los códigos más diminutos) que permiten al escáner corregir la perspectiva y la curvatura, de modo que un código en una lata abollada o en un teléfono inclinado sigue leyéndose.
  • Información de versión y formato: franjas reservadas cerca de los patrones de posición que le indican al escáner el tamaño del código y su configuración de corrección de errores.

Cada una de estas partes tiene una función — nuestra guía sobre la anatomía de un código QR las nombra y ubica todas.

Paso 3: ¿Cómo convierte los cuadrados en bits?

Con la cuadrícula fijada, el escáner muestrea el centro de cada módulo y decide: ¿es oscuro o claro? Oscuro se convierte en 1, claro en 0. Ahora la imagen se ha convertido en un largo flujo de bits dispuestos en un camino específico en zigzag que serpentea arriba y abajo por las columnas del código.

Primero hay que quitar la máscara

Aquí viene un giro. Para mantener el código legible, los codificadores QR revuelven el patrón con una máscara — un patrón repetitivo aplicado mediante XOR sobre los datos para romper los grandes bloques de cuadrados del mismo color que confundirían a los escáneres. La información de formato le indica al lector cuál de las ocho máscaras se usó, para poder invertirla. Nuestro artículo sobre el enmascaramiento de datos explica por qué esa textura de aspecto aleatorio es deliberada.

Paso 4: ¿Cómo corrige los errores?

Los códigos del mundo real se rayan, se manchan, se imprimen mal o quedan parcialmente cubiertos por un logotipo. Los códigos QR gestionan esto con la corrección de errores Reed–Solomon, un método matemático que añade datos redundantes para que el mensaje original pueda reconstruirse incluso cuando parte de él falta o es incorrecto.

Según el nivel elegido al crear el código — L, M, Q o H — el código puede recuperarse de aproximadamente un 7 %, 15 %, 25 % o 30 % de daño. El escáner usa los bytes de corrección de errores para detectar y reparar errores antes de decodificar. Nuestras guías sobre la corrección de errores QR y sobre Reed–Solomon, explicado de forma sencilla profundizan sin el álgebra pesada.

NivelRecuperaciónIdeal para
L~7 %Pantallas digitales limpias
M~15 %Impresión cotidiana
Q~25 %Entornos industriales o sucios
H~30 %Logotipos, condiciones duras

Paso 5: ¿Cómo decodifica el mensaje?

Ahora el escáner tiene bits limpios. Los primeros bits forman un indicador de modo que dice qué tipo de datos siguen — numérico, alfanumérico, byte (para texto general y URL) o Kanji. Los bits siguientes dan la longitud. Después, los bits de datos reales se interpretan según ese modo. Nuestro artículo sobre los modos de codificación desglosa cada uno.

Una vez que los bytes se decodifican en texto, el teléfono reconoce lo que es — una URL, datos de Wi-Fi, una tarjeta de contacto — y ofrece la acción adecuada, como abrir un navegador. Y esa es toda la tubería: localizar → alinear → muestrear → desenmascarar → corregir errores → decodificar.

¿Por qué importa la zona de silencio?

Un ingrediente que se olvida fácilmente se sitúa fuera del código: la zona de silencio, un margen liso (de unos cuatro módulos de ancho) que rodea todo el conjunto. Sin ella, el texto o los gráficos cercanos pueden colarse en los patrones de posición y el escáner nunca se fija. Es la razón por la que un código apretujado contra otro contenido a veces simplemente no se lee. Consulta nuestra nota sobre la zona de silencio para ver por qué ese espacio vacío se gana su sitio.

¿Puedo ver esto suceder por mí mismo?

¡Más o menos! Un ojo entrenado puede distinguir los patrones de posición, leer los bits de formato e incluso deducir el modo de codificación a mano. Es un ejercicio entretenido — nuestro artículo sobre leer un código QR a simple vista muestra hasta dónde puedes llegar antes de que el enmascaramiento lo complique demasiado.

Si quieres un código limpio y honesto para inspeccionar, puedes crear un código QR gratis con QR Puppy — estático, sin rastreo y sin caducidad.

Preguntas frecuentes

¿Con qué rapidez se escanea un código QR?

Normalmente en una fracción de segundo. Los teléfonos modernos ejecutan la tubería de localizar-alinear-muestrear-decodificar de forma continua sobre la imagen de la cámara, así que en el momento en que un código válido llena suficiente encuadre, se decodifica casi al instante.

¿Por qué puedo escanear un código QR boca abajo?

Los tres patrones de posición están en tres esquinas, no en cuatro. Al detectar qué esquina carece de patrón de posición, el escáner deduce la orientación del código y lo gira mentalmente antes de leerlo — así que cualquier ángulo funciona.

¿Afecta el color de un código QR al escaneo?

Sí. Los escáneres dependen del contraste entre los módulos oscuros y claros. El negro sobre blanco es lo más seguro; los esquemas de bajo contraste o de colores invertidos pueden fallar. Si tienes que usar color, mantén los módulos oscuros genuinamente oscuros y el fondo genuinamente claro.

¿Qué pasa si falta parte del código?

Gracias a la corrección de errores Reed–Solomon, un código puede perder aproximadamente entre un 7 % y un 30 % de sí mismo (según su nivel) y aun así decodificarse. Más allá de ese umbral, el escáner no puede reconstruir los datos y el código no se lee.

¿Pueden dos códigos QR distintos contener los mismos datos?

Dos códigos con los mismos datos, versión, nivel de error y máscara se verán idénticos. Cambia cualquier elección de codificación — como la máscara o el nivel de error — y el mismo mensaje puede producir un código de textura distinta pero igualmente válido.

Crea un código QR de forma honesta 🐾

Gratis para siempre, sin rastreo, sin caducidad — generado en tu propio navegador.

🎨 Crear un código QR →