Un generador web permite incrustar una fotografía dentro de un código QR sin perder la capacidad de lectura, aprovechando la zona de los módulos de datos del propio código. La técnica parte de una idea vista en Mastodon: dividir cada módulo del QR en una rejilla de tres por tres, usar el píxel central para almacenar el dato codificado y reservar los otros ocho para la imagen. El resultado es una foto en escala de grises de un bit a muy baja resolución, inevitablemente ruidosa.
Para suavizar ese ruido y mejorar la calidad visual se aplica primero un filtro Bayer, que crea una textura de damero capaz de sugerir tonos medios sin necesidad de más colores. Sobre esa base se ejecuta después un algoritmo de difusión de error tipo Floyd-Steinberg: cada píxel se cuantiza a blanco o negro y el error se reparte a los píxeles vecinos todavía por procesar, de modo que, al promediar, la imagen conserva mejor el brillo original. Los patrones irregulares resultantes, además de ser visualmente menos molestos, disimulan el ruido aleatorio introducido por los módulos del QR.
El autor da un paso más con una segunda pasada de difusión de error específicamente dirigida a los píxeles de datos, cuyo color ya viene fijado por el QR. Esa primera pasada, al corregir primero esos píxeles obligatorios, deja la imagen notablemente más limpia. La herramienta permite además rotar el código, ajustar parámetros de generación y, opcionalmente, modificar algunos módulos dentro del margen de corrección de errores del propio QR.
La técnica funciona bien en pantallas grandes o pósteres, pero pierde robustez en soportes pequeños o arrugados, así que se debe recordar que un código legible en un monitor puede fallar en el móvil de otra persona con peor iluminación. La aplicación genera imágenes sin margen, por lo que conviene añadir uno del color opuesto al de los patrones de búsqueda para asegurar una lectura fiable.
