¿Qué es un código QR?
El código QR (de Quick Response, respuesta rápida) es un código de barras bidimensional que inventó Denso Wave en 1994 para seguir piezas de automoción. A diferencia de un código de barras clásico, que guarda unos 20 caracteres, un QR puede almacenar hasta 3.000 bytes de datos de cualquier tipo (direcciones web, tarjetas de contacto, texto, datos binarios) en una imagen cuadrada que se lee con la cámara.
Las partes de un código QR
**Patrones de localización**: los tres cuadrados grandes de las esquinas (la cuarta está vacía a propósito). Permiten que el lector detecte la posición, el tamaño y la orientación del código, sea cual sea el ángulo desde el que se escanee.
**Patrones de sincronización**: las líneas alternas en blanco y negro que unen los patrones de localización. Ayudan al lector a deducir el tamaño de la cuadrícula interna.
**Patrones de alineación**: cuadrados adicionales que aparecen en los códigos más grandes. Sirven para corregir la distorsión física al escanear superficies curvas.
**Información de formato**: las franjas junto a los patrones de localización, que codifican el nivel de corrección de errores y el patrón de máscara (ahora lo vemos).
**Zona de datos**: todo lo demás. Las celdas restantes guardan los datos reales siguiendo un zigzag que arranca en la esquina inferior derecha.
Cómo se codifican los datos
Los códigos QR admiten cuatro modos de codificación, que se eligen automáticamente según los datos:
- **Numérico**: solo dígitos del 0 al 9. El más eficiente: 3 dígitos por cada 10 bits.
- **Alfanumérico**: letras mayúsculas, dígitos y 9 símbolos. 2 caracteres por cada 11 bits.
- **Byte**: bytes de 8 bits sin procesar (texto UTF-8, datos binarios). 1 carácter por cada 8 bits.
- **Kanji**: caracteres japoneses. 1 carácter por cada 13 bits.
Un código QR con una dirección web usa automáticamente el modo byte para el https:// y el alfanumérico o el byte para el dominio y la ruta.
Corrección de errores: por qué un QR dañado sigue funcionando
Esta es la parte más impresionante. Los códigos QR usan corrección de errores Reed-Solomon, lo que significa que un código puede estar parcialmente destruido y aun así leerse bien. Hay cuatro niveles:
- **L (bajo)**: se puede dañar hasta el 7 % de los datos
- **M (medio)**: hasta el 15 %
- **Q (cuartil)**: hasta el 25 %
- **H (alto)**: hasta el 30 %
Más corrección de errores significa más redundancia, y por tanto un código más grande para los mismos datos. Es también la razón por la que puedes poner un logotipo en el centro de un QR: estás dañando a propósito hasta un 30 % de los datos, y la corrección de errores los reconstruye.
El patrón de máscara
Los datos en bruto de un QR suelen generar grandes zonas uniformes (todo negro o todo blanco) que confunden a los lectores. Para evitarlo, los códigos QR aplican uno de los 8 patrones de máscara: transformaciones matemáticas sobre la zona de datos que rompen esas regiones uniformes. El generador prueba las 8 máscaras y elige la que da el mejor equilibrio entre celdas claras y oscuras.
La máscara elegida se guarda en las franjas de información de formato para que el lector sepa qué patrón tiene que deshacer al decodificar.
Las versiones de los códigos QR
Los códigos QR vienen en 40 tamaños llamados versiones. La versión 1 es una cuadrícula de 21×21 y guarda entre 17 y 41 caracteres. La versión 40 es de 177×177 y llega a los 3.000 bytes. Para la mayoría de direcciones web (de 30 a 80 caracteres) basta con una versión de la 3 a la 5, es decir, de 29×29 a 37×37.
Consejos prácticos para códigos QR mejores
- **Cuanto más corta sea la dirección, más rápido se lee y más limpio queda el código**: usa un acortador o un dominio corto en el material impreso.
- **Usa corrección de errores alta (H) en material impreso** que pueda mancharse o estropearse.
- **Oscuro sobre claro funciona mejor que claro sobre oscuro**: casi todos los lectores están pensados para negro sobre blanco.
- **Pruébalo al tamaño más pequeño al que lo vayas a imprimir**: un QR de 1 cm puede no leerse bien a medio metro.
- **Respeta la zona de silencio**: tiene que haber 4 módulos de espacio en blanco alrededor del código por todos los lados. Imprimirlo pegado al borde de una caja provoca fallos de lectura.
El generador de códigos QR de NoxaKit los crea íntegramente en el navegador: sin servidor, sin subir nada, y puedes descargar el resultado en PNG.