Saltar al contenido
Español

Explicación

¿Qué es un código QR?

Un código QR es un código de barras bidimensional que guarda texto en una cuadrícula de cuadros blancos y negros. Esta guía desmonta uno —las marcas de las esquinas, la zona de datos, la información de reparación— y explica por qué esa estructura decide cuánto se puede codificar.

Un código QR es una cuadrícula de cuadros blancos y negros que guarda texto. Eso es todo. No es un enlace, no es una imagen y no es una cuenta en ningún sitio: es una forma de escribir caracteres de manera que una cámara pueda leerlos.

Las siglas vienen de Quick Response, respuesta rápida, y describen el problema que se inventó para resolver. En 1994, en la fábrica de Denso Wave, un código de barras normal obligaba a alinear el lector con las rayas y solo cabían unos veinte caracteres. El equipo de Masahiro Hara buscaba algo que se pudiera leer desde cualquier ángulo y que guardara bastante más. La solución fue pasar de una dimensión a dos: en lugar de rayas de distinta anchura, una malla en la que cada celda —cada módulo— vale un bit.

Qué es cada parte del dibujo

Si miras un código QR de cerca verás que no todo es aleatorio. Hay zonas con una función concreta.

Los tres cuadrados grandes de las esquinas son los patrones de posicionamiento. Son lo primero que busca el lector, y su proporción de anillos —negro, blanco, negro, en relación 1:1:3:1:1— es un patrón que casi nunca aparece por casualidad en una fotografía. Al encontrar tres, el teléfono sabe dónde están tres de las cuatro esquinas y, por tanto, en qué ángulo está el código. Por eso puedes escanear uno torcido, o boca abajo, y funciona igual: la orientación se deduce de qué esquina no tiene cuadrado.

El cuadrado pequeño cerca de la cuarta esquina es el patrón de alineación. Corrige la deformación cuando el código está sobre una superficie curva o se fotografía en ángulo. Los códigos más pequeños no lo llevan porque no lo necesitan; a partir de cierto tamaño aparecen varios.

Las dos líneas de módulos alternos que unen los cuadrados de las esquinas son los patrones de temporización. Le dicen al lector el tamaño exacto de un módulo, que es lo que le permite dividir correctamente la malla aunque la foto esté algo desenfocada.

El resto son datos y corrección de errores, mezclados según un orden que define la norma.

Cómo se convierte el texto en cuadros

El proceso tiene tres pasos y merece la pena entenderlos porque explican casi todas las decisiones prácticas.

Primero, el texto se codifica en bits usando el modo más compacto que sirva. Si solo hay dígitos, cada carácter ocupa unos 3,3 bits. Si hay mayúsculas y algunos símbolos, 5,5 bits. Si hay minúsculas, tildes o eñes, se pasa al modo byte y cada carácter cuesta ocho bits o más. Esta es la razón de que un mensaje en español con acentos genere un código más denso que el mismo texto sin ellos.

Segundo, se añade la información de corrección de errores mediante un algoritmo llamado Reed-Solomon. No es un extra: es lo que permite que un código siga funcionando con una parte tapada, rayada o mal impresa. Hay cuatro niveles —L, M, Q y H— que recuperan aproximadamente el 7 %, el 15 %, el 25 % y el 30 % del contenido. Cuanto más alto el nivel, más módulos ocupa la reparación y menos espacio queda para datos.

Tercero, todo se coloca en la malla siguiendo un recorrido en zigzag y se le aplica una máscara: un patrón que se combina con los datos para evitar que salgan grandes manchas uniformes o formas que se parezcan a los cuadrados de las esquinas. El codificador prueba las ocho máscaras posibles y se queda con la que produce el dibujo más equilibrado. Por eso dos códigos con el mismo contenido pueden verse distintos si se generan con herramientas diferentes: ambos son correctos.

Por qué el tamaño no lo decides tú

El número de módulos por lado no es una preferencia, es una consecuencia. El formato tiene cuarenta versiones: la 1 es de 21×21 módulos y cada versión siguiente añade cuatro filas y cuatro columnas, hasta la 40, de 177×177. El codificador elige la versión más pequeña en la que quepan tus datos con el nivel de corrección que hayas pedido.

De ahí salen las dos reglas prácticas más útiles que existen sobre códigos QR:

  1. Menos texto, código más grueso. Y los módulos gruesos son los que sobreviven a una impresión pequeña, a una cámara mediocre y a un papel que absorbe tinta.
  2. Más corrección de errores, código más fino. Subir de M a H con el mismo contenido puede aumentar bastante el número de módulos, así que solo compensa cuando de verdad esperas daño o vas a tapar parte del código con un logo.

Qué ocurre en el segundo del escaneo

Cuando apuntas la cámara, el teléfono hace todo esto en unos milisegundos: localiza los tres cuadrados, deduce la orientación, calcula el tamaño de módulo con los patrones de temporización, corrige la perspectiva, lee los bits, deshace la máscara, aplica la corrección de errores para reparar lo que falte y obtiene el texto original.

Y entonces —y solo entonces— decide qué hacer con ese texto. Si empieza por https://, ofrece abrirlo. Si empieza por WIFI:, ofrece conectarse. Si empieza por BEGIN:VCARD, ofrece guardar un contacto. Ese prefijo es la única diferencia entre un «código QR de wifi» y un «código QR de enlace»: los cuadros funcionan exactamente igual, lo que cambia es lo que llevan escrito.

Entender eso es lo que evita el error más común del formato, que es esperar que un código haga algo que su contenido no le pide.

Preguntas frecuentes

¿Quién inventó el código QR y de quién es ahora?

Lo desarrolló en 1994 el equipo de Masahiro Hara en Denso Wave, filial de Toyota, para seguir piezas de coche en una línea de montaje. Denso Wave tiene patentes sobre el formato pero nunca las ha hecho valer contra quien genera o lee códigos, y el formato se normalizó como ISO/IEC 18004, que cualquiera puede implementar. Las palabras QR Code siguen siendo marca registrada, y por eso la documentación las escribe en mayúsculas. En la práctica puedes crear e imprimir tantos como quieras sin pagar ni pedir permiso a nadie.

¿Cuántos datos caben en un solo código QR?

El techo teórico son 7.089 dígitos numéricos, 4.296 caracteres alfanuméricos o 2.953 bytes en el nivel de corrección más bajo. Esos números no sirven de nada en la práctica, porque un código así tiene 177 filas de cuadros y la cámara de un teléfono no puede resolverlos salvo que el código impreso sea enorme. Cualquier cosa que quieras que la gente escane de verdad debería quedarse por debajo de unos 300 caracteres, que mantiene la cuadrícula lo bastante pequeña para leerla a una distancia cómoda.

¿Por qué unos códigos QR se ven más recargados que otros?

Porque llevan más datos dentro. El formato crece por versiones, de la 1 a la 40, y cada una añade cuatro filas y cuatro columnas de módulos. Un código con veinte caracteres puede ser de versión 2, con 25 módulos por lado; uno con doscientos necesita una versión mucho mayor y el mismo tamaño impreso reparte muchos más cuadritos en la misma superficie. Subir el nivel de corrección de errores también añade módulos, porque la información de reparación ocupa sitio.

¿Se puede leer un código QR sin conexión a internet?

El código siempre se lee sin conexión, porque descifrar el patrón es un cálculo local que hace el propio teléfono. Lo que puede necesitar conexión es lo que ocurre después: si dentro hay una dirección web, abrirla requiere red. Si dentro hay texto plano, unos datos de contacto o una configuración de wifi, todo funciona en modo avión.

¿Caducan los códigos QR?

El patrón en sí no caduca nunca: es una forma de escribir datos, no un servicio. Lo que puede caducar es el destino. Un código estático guarda los datos dentro y funciona mientras exista aquello a lo que apunta. Un código dinámico guarda la dirección de un servicio de redirección, y deja de funcionar el día que ese servicio cierra o deja de pagarse, aunque el papel impreso siga intacto.

Generadores que se tratan aquí

Sigue leyendo