Por qué los códigos QR artísticos siguen escaneándose: la idea del semitono
Un código QR artístico puede seguir escaneándose porque algunos descodificadores no juzgan cada módulo en su conjunto. Un descodificador de código abierto, ZXing, lee un píxel en el centro calculado de cada módulo. El enfoque de semitono, descrito por Chu et al. en 2013, se basa en eso: cada módulo conserva un punto del color correcto en su centro y la imagen asoma a su alrededor. El truco falla cuando el desenfoque o una superposición llegan al centro, así que cada diseño necesita una prueba de descodificación y una prueba impresa.
Datos comprobados el 17 de octubre de 2026.
Qué mira un escáner y qué se salta
La estructura que sigue procede de la edición de 2006 de la ISO/IEC 18004; en agosto de 2024 apareció una cuarta edición cuyo texto completo no hemos leído. Un código QR tiene tres patrones de posición idénticos, formados por módulos oscuros de 7×7, claros de 5×5 y oscuros de 3×3 en la proporción 1:1:3:1:1; encontrar los tres indica al lector dónde está el símbolo y cómo está girado. Después, los patrones de temporización y de alineación le ayudan a colocar la cuadrícula de módulos.
Una vez colocada la cuadrícula, el descodificador muestrea cada módulo. Un artículo de EUSIPCO de 2022 parte de la premisa de que solo se muestrea el píxel central de cada módulo, pero añade que pueden muestrearse píxeles cercanos cuando la cuadrícula de muestreo se estima con errores. No hemos verificado cómo descodifican las cámaras integradas de los iPhone y los teléfonos Android, así que toma ZXing como un ejemplo, no como todos los teléfonos.
La idea del semitono
Chu, Chang, Lee y Mitra publicaron «Halftone QR Codes» en ACM Transactions on Graphics en noviembre de 2013. El modelo del artículo divide cada módulo en 3×3 submódulos y vincula el color del módulo al central, dejando los otros ocho libres para seguir una imagen en semitono. En condiciones perfectas, señalan, cualquier patrón con el color correcto en el centro debería dejar el módulo legible. Solo cambian módulos de datos.
Piénsalo como una promesa por módulo: el centro siempre es correcto y el resto puede mostrar la imagen. Si el descodificador muestrea exactamente el centro, la imagen no daña ninguna palabra de código, así que la corrección de errores queda en reserva (es nuestra lectura, no una afirmación del artículo). El muestreo real es imperfecto, y ahí es donde se gasta la reserva. Los autores también describen un paso opcional que, en sus pruebas, usa deliberadamente hasta la mitad de la capacidad de corrección.
El artículo es franco sobre el coste: cita como limitación el desenfoque por submuestreo, porque el píxel central que lleva los datos se contamina con facilidad por sus vecinos. En una prueba con cinco códigos, tres usuarios y cuatro lectores de códigos de barras para móvil, los códigos en semitono dejaron de funcionar con un radio de desenfoque gaussiano de 2 píxeles y un ángulo de visión de 40 grados; los códigos normales equivalentes dejaron de funcionar a 6 píxeles y 60 grados. El mismo artículo indica que, de 100 códigos hechos con los ajustes por defecto, 91 se leyeron en los cuatro lectores. Las pruebas usaron un teléfono de 8 megapíxeles y códigos mostrados en un monitor, así que tómalas como una tendencia, no como una previsión para los teléfonos actuales.
Dónde fallan los códigos artísticos
Cada fila rompe la suposición del muestreo central o gasta capacidad de corrección de errores. La última columna marca nuestro propio razonamiento.
| Lo que haces | Qué falla | Base |
|---|---|---|
| Poner módulos claros sobre fondo oscuro | La edición de 2006 admite símbolos claros sobre fondo oscuro, pero cada descodificador decide si prueba una imagen invertida. ZXing solo lo hace cuando quien lo llama activa una indicación; jsQR prueba ambas por defecto, con un coste de velocidad de alrededor del 50%. | Norma, dos descodificadores; cámaras de móvil sin verificar |
| Pintar sobre los tres patrones de las esquinas | Sirven para localizar y orientar el símbolo, y Chu et al. solo cambian módulos de datos. | Edición de 2006; Chu et al. |
| Dejar menos de cuatro módulos de margen | La edición de 2006 exige una zona de silencio de cuatro módulos. DENSO WAVE dice que letras o imágenes alrededor del código impiden asegurar el margen necesario. | Edición de 2006; DENSO WAVE |
| Reducir los puntos centrales para mostrar más imagen | Menos margen cuando la cuadrícula de muestreo está ligeramente desviada, y los códigos en semitono toleraron menos desenfoque y ángulo en la prueba de 2013. | EUSIPCO 2022; Chu et al.; la relación con el tamaño del punto es deducción nuestra |
| Teñir los puntos con los colores de la imagen | La diferencia entre oscuro y claro puede estrecharse. El binarizador de ZXing trata un bloque de 8×8 píxeles cuyos píxeles más claro y más oscuro difieren en 24 niveles o menos (escala de 0 a 255) como si contuviera solo píxeles claros o solo oscuros, y estima su umbral de otra forma. | Código fuente de ZXing; la relación con el teñido es deducción nuestra |
Por qué «30% de corrección de errores» no es el 30% de la superficie
La edición de 2006 da una capacidad de recuperación aproximada del 7%, 15%, 25% y 30% para los niveles L, M, Q y H, como proporción de las palabras de código del símbolo. DENSO WAVE también expresa la tasa como proporción del total de palabras de código. La norma añade que invertir un módulo hace que su carácter se descodifique como una palabra de código aparentemente válida pero distinta, y corregirlo requiere dos palabras de código de corrección. Su ejemplo: un símbolo de versión 6-H tiene 172 palabras de código, 112 para corrección, que pueden corregir 56 errores de descodificación, o el 32,6% de la capacidad.
Así que cualquier porcentaje de superficie es una conjetura. En un símbolo normal, una palabra de código ocupa una columna de dos módulos de ancho y cuatro de alto, según leemos la figura de colocación de bits de la norma, así que, por deducción nuestra, unas manchas dispersas pueden tocar más palabras de código que un bloque compacto de la misma superficie. No afirmamos cuánta superficie puede cubrir un diseño. Para elegir un nivel, consulta los niveles de corrección de errores explicados; para ejemplos terminados, consulta ideas de diseño por sector.
Cómo comprobar un código artístico antes de imprimirlo
- Empieza con el nivel H y el contenido más corto posible. Más contenido significa módulos más pequeños con el mismo tamaño de impresión, y DENSO WAVE dice que los módulos más grandes son más estables y fáciles de leer. La guía de capacidad de datos muestra lo rápido que crecen los símbolos.
- Comprueba el contraste entre oscuro y claro en todas partes. Convierte el diseño a escala de grises. Cada punto oscuro debe ser claramente más oscuro que los puntos claros vecinos, tanto en las zonas claras como en las oscuras de la imagen.
- Descodifícalo digitalmente a varios tamaños. El comprobador de QR gratuito funciona en tu navegador sin subir la imagen, prueba el contraste y la zona de silencio, vuelve a probar a tamaños reducidos y avisa de un código que solo se descodifica invertido.
- Imprime una prueba y escanéala con distintos teléfonos. El anexo informativo de la norma pide verificar un símbolo en su configuración final de etiqueta o envase, porque «las superposiciones, las transparencias y las superficies curvas o irregulares pueden afectar a la legibilidad del símbolo». Chu et al. vieron que cuatro lectores de códigos de barras en un mismo teléfono se comportaban de forma distinta, así que usa al menos dos teléfonos, a la distancia y con la luz reales. Consulta la guía de tamaño de impresión para los anchos mínimos.
- Si falla, cambia una cosa cada vez. Agranda los puntos centrales, baja el contraste de la imagen, imprime más grande o recorta el contenido, y repite los pasos 3 y 4.
Lo que una comprobación integrada puede y no puede decirte
En el editor de QR Maker AI, los temas festivos y los semitonos de motivo, como el carácter 福, son gratuitos, y la fusión de imagen, tu propia imagen bajo los puntos, es una función Pro a octubre de 2026 (consulta los precios). Para los semitonos de motivo y la fusión de imagen, el editor dibuja solo un punto central por módulo, pone un bloque claro sólido bajo los patrones de las esquinas, los patrones de alineación y la zona del logotipo, y fija la corrección de errores en el nivel H.
La comprobación Scan Guard del editor descodifica el código renderizado en tu navegador a un tamaño normal y a varios más pequeños, con un descodificador de código abierto y solo en modo oscuro sobre claro. No puede probar códigos claros sobre oscuro, papel, tinta, superficies curvas ni la cámara de ningún teléfono, así que la prueba impresa del paso 4 sigue siendo necesaria. Prueba un diseño en el editor.
Preguntas frecuentes
¿Cómo funcionan los códigos QR artísticos?
Los códigos de estilo semitono conservan un punto del color correcto en el centro de cada módulo y dibujan la imagen a su alrededor, porque descodificadores como ZXing muestrean cerca del centro del módulo. La corrección de errores es el margen de seguridad adicional.
¿Puedo poner una foto detrás de un código QR y que siga escaneándose?
Puede funcionar si los puntos siguen siendo claramente más oscuros o más claros que lo que los rodea, las esquinas y el margen quedan despejados y la corrección de errores es H. Ningún diseño tiene garantizado el escaneo, así que prueba una copia impresa.
¿Puedo usar puntos blancos sobre fondo oscuro?
La norma admite símbolos claros sobre fondo oscuro, pero el soporte depende de la app: ZXing solo prueba una imagen invertida cuando se le indica. Oscuro sobre claro es más seguro; prueba cualquier diseño invertido en los teléfonos de tu público.
¿Cuánto de un código QR puede cubrir un diseño?
El nivel no se traduce en un porcentaje de superficie. Los niveles de corrección de errores se definen como proporción de palabras de código, y un solo módulo invertido estropea toda su palabra de código. Prueba el archivo real.
¿Por qué no se escanea mi código QR diseñado?
Comprueba si hay colores invertidos, esquinas tapadas, un margen de menos de cuatro módulos, poco contraste entre puntos oscuros y claros, o una impresión pequeña. La lista de solución de problemas cubre otras causas.
Fuentes
- ZXing project — DefaultGridSampler.java. Undated source file. Accessed 17 October 2026.
- Chu, H.-K., et al. — Halftone QR Codes. ACM Transactions on Graphics 32(6), Article 217, SIGGRAPH Asia 2013 (author-hosted PDF, National Tsing Hua University; publisher record: ACM Digital Library). Published 1 November 2013. Accessed 17 October 2026.
- ISO/IEC — ISO/IEC 18004:2006, QR Code 2005 bar code symbology specification. Second edition, published 1 September 2006 (copy hosted by Public.Resource.Org). Accessed 17 October 2026.
- ISO — ISO/IEC 18004:2024 standard page. Fourth edition, published August 2024. Accessed 17 October 2026.
- Pena-Pena, K., Lau, D. L., Arce, G. R. — Colored-QRNet: Fast QR Code Color Image Embedding. EUSIPCO 2022 proceedings. Published 2022. Accessed 17 October 2026.
- ZXing project — DecodeHintType.java. Undated source file. Accessed 17 October 2026.
- jsQR project — README. Undated. Accessed 17 October 2026.
- DENSO WAVE — Examples of problems encountered in reading a code. QRcode.com, undated. Accessed 17 October 2026.
- ZXing project — HybridBinarizer.java. Undated source file. Accessed 17 October 2026.
- DENSO WAVE — Error correction feature. QRcode.com, undated. Accessed 17 October 2026.
- DENSO WAVE — Point for setting the module size. QRcode.com, undated. Accessed 17 October 2026.