Los códigos QR y los códigos Datamatrix estan formados por un patrón de celdas cuadradas, en principio suelen ser en blanco y negro pero admiten un menor contraste llegando a una diferenciación del 20%, esa es la teoría pero en realidad la calidad de la óptica de la cámara del móvil y del software decodificador hace que debamos aumentar el contraste como mínimo a un 40% para asegurarnos que funciona en la mayoría de lectores.
Por otro lado la información codificada en su interior es redundante, esto quiere decir que esta repetida y distribuida aleatoriamente por su superficie y aun faltando un trozo de código se puede seguir decodificando sin problemas, esta funcionalidad es el código Reed-Solomon, un código de detección y corrección de errores.
Un vez conocidas estas cualidades de los códigos, podemos modificarlos a nuestro antojo sin que sigan perdiendo su cualidad principal; almacenar información. A continuación explicare algunos ejemplos prácticos.
Una diferencia de contraste del 20% es mejor clara que oscura
En principio se pueden decodificar con celdas en negro y fondo de un 80% de gris o celdas con un 20% de gris y fondo blanco, pero a un mismo rango de contraste es mejor un fondo claro que uno oscuro.
Cuando una parte es el todo
Aún tapando una parte del código se puede seguir decodificando debido a la redundancia de la información, la posición tampoco debe ser necesariamente horizontal ya que viene definida por los tres cuadrados más grandes en el caso del código QR y por las lineas lateral izquierda e inferior en el caso de Datamatrix.
No seas cuadriculado, a veces conviene perder las formas
Las celdas del código no tienen porque mantenerse cuadradas, en este caso se utiliza un tramado de circulos en un código Datamatrix donde además no son todos del mismo color. El color no afecta a la información almacenada siempre y cuando se mantenga un cierto contraste entre la trama y el fondo.
Incluso se puede utilizar cualquier objeto totalmente irregular como en este caso unas simples avellanas con las que se forma un código que sigue estando totalmente vivo.
Y para acabar se hace camino al andar
Despues de experimentar las modificaciones de contraste, forma y horizontalidad, faltaba comprobar si los códigos ubícuos debián ser necesariamente estáticos. En este caso se ha generado una animación en la que cada uno de sus fotogramas es trazable por lo que la suma de todos ellos también sigue siéndolo, así se consigue crear un código animado, pero incluso en el caso de generar una animación con fotogramas no descifrables seguirá funcionando si algunos de ellos si lo son.