Publicado el 6/8/2026
¿Cómo funciona un código QR? Para qué sirve cada parte del patrón
Un móvil lee un código QR en una décima de segundo aproximadamente, y el proceso es siempre el mismo: encontrar los tres cuadrados de las esquinas, deducir la rejilla, leer una franja que dice cómo está codificado el resto, deshacer un mezclado, y luego recomponer los datos y reparar lo dañado.
Cada cuadrado del patrón pertenece a uno de esos pasos. Aquí está a cuál.
Los tres cuadrados de las esquinas: encontrar y orientar
Los cuadrados grandes de tres esquinas son los patrones de localización. Es lo primero que busca un escáner, y su proporción de bandas claras y oscuras —1:1:3:1:1 a lo largo de cualquier línea que pase por el centro— es deliberadamente rara en imágenes normales, para que la cámara los detecte incluso en una foto cargada.
Tres, y no cuatro: ahí está el truco, porque tres esquinas definen dónde está arriba. Por eso se lee del revés o en ángulo, y por eso tapar una esquina lo mata del todo, por mucha corrección de errores que hayas pagado.
Las líneas punteadas: fijar la rejilla
Entre los localizadores corren líneas de módulos alternos: los patrones de sincronización. Le dicen al escáner cuántos módulos mide el código de ancho, para poner una rejilla sobre la imagen y saber dónde cae cada celda. Sin ellos, una foto algo girada se desalinearía a mitad de camino.
Los cuadrados pequeños: corregir una superficie curva
Desde la versión 2 aparecen patrones de alineación más pequeños dentro del código. Son puntos de referencia que permiten deshacer la distorsión: un código en una botella, una etiqueta curva, una foto tomada de lado. Cuanto más grande el código, más lleva.
La franja junto a las esquinas: los ajustes
Alrededor de los localizadores está la información de formato: el nivel de corrección de errores y cuál de las ocho máscaras se aplicó. Se lee antes que los datos, porque sin ella los datos no se pueden interpretar. Tiene su propia protección pequeña, aparte del nivel elegido, y por eso el «30 % de daño» nunca se refirió a ella.
El enmascarado: por qué dos códigos del mismo enlace se ven distintos
Los datos codificados en bruto suelen producir grandes zonas vacías o rayas, y eso confunde a una cámara; peor aún, pueden imitar un localizador. Así que el codificador combina los datos por XOR con una de ocho máscaras, puntúa el resultado y se queda con la mejor.
Por eso la misma URL da patrones visiblemente distintos según la herramienta, y por eso no se puede «leer» nada a ojo en la disposición de los puntos.
Cómo se colocan los datos
Se escriben en columnas de dos módulos de ancho, empezando abajo a la derecha y serpenteando hacia arriba, luego abajo, luego arriba: alrededor de los patrones funcionales, nunca a través. Existen cuatro modos de codificación y el codificador toma el más compacto que sirva: numérico, alfanumérico, byte (que cubre las URL normales) y kanji.
El tamaño se llama versión, de 1 a 40: de 21×21 módulos a 177×177, cuatro módulos más por lado en cada paso. En el extremo, una versión 40 con la corrección más baja guarda unos 7.089 dígitos o 4.296 caracteres alfanuméricos. Nadie imprime eso: ninguna cámara de móvil resuelve una rejilla tan densa a un tamaño sensato.
Corrección de errores: la segunda copia
Parte de cada código son datos Reed-Solomon: una segunda copia matemática que permite reconstruir lo ilegible. Cuatro niveles: en torno al 7 %, 15 %, 25 % y 30 % del área de datos recuperable, de L a H.
Ese presupuesto paga el logo del centro, el arañazo, la lluvia sobre la pegatina. También explica que un nivel más alto densifique el patrón: los datos de recuperación ocupan sitio.
El borde blanco es parte del código
La zona de silencio —cuatro módulos de espacio libre alrededor— no es decoración. Es como el escáner sabe dónde acaba el código y empieza el mundo. Una orla decorativa pegada al patrón la elimina, y esa es una de las causas más frecuentes de que un código bonito impreso no escanee.
Qué contiene realmente un código dinámico
Idea equivocada muy extendida: que un código dinámico guarda tu destino y se actualiza solo. No puede: el patrón queda fijo en cuanto se imprime.
Lo que codifica es un enlace corto: un dominio y un puñado de caracteres. Al escanear se abre ese enlace corto, que reenvía a donde el código apunte en ese momento. Cambias el destino y todas las copias impresas lo siguen, porque nada del patrón impreso tiene que cambiar.
Un efecto práctico que conviene saber: como un enlace corto son unas pocas decenas de caracteres, el código se queda en una versión baja, con módulos grandes y robustos. Un código estático con una URL larga y parámetros necesita una rejilla mucho más densa al mismo tamaño físico, que es justo el código que falla en un cartel.
Respuestas rápidas
- ¿Qué son los tres cuadrados grandes? Patrones de localización: sitúan y orientan el código.
- ¿Por qué escanea del revés? Tres esquinas bastan para definir dónde está arriba.
- ¿Y los cuadrados pequeños de dentro? Patrones de alineación, contra la distorsión.
- ¿Por qué difieren dos códigos del mismo enlace? El enmascarado: se elige la mejor de ocho.
- ¿Cuánto cabe? Hasta unos 7.089 dígitos en el máximo, mucho más de lo imprimible.
- ¿El borde blanco es opcional? No: con él se encuentran los bordes.
- ¿Un código dinámico guarda mi enlace? No, un enlace corto que reenvía.