Una imagen hecha de muchas imágenes
Un fotomosaico es una imagen grande reconstruida a partir de cientos o miles de fotografías pequeñas. Desde el otro lado de la habitación se lee como el retrato o el paisaje original; a un palmo de distancia se deshace en las fotos que lo componen. Esa doble lectura es toda la gracia del formato, y conseguir las dos mitades es un problema de emparejamiento: para cada pequeña zona de la imagen objetivo, ¿cuál de tus fotos le corresponde?
Dividir el objetivo en una rejilla
Lo primero es dividir la foto objetivo en una rejilla. Tú eliges cuántas teselas caben a lo ancho; el número de filas se deduce de la propia proporción de la imagen, de modo que nada queda estirado ni con bandas. El total de celdas está limitado para que una foto muy alargada con un ajuste muy fino no bloquee el navegador. Cada celda es entonces un pequeño rectángulo del original que necesita una foto que lo sustituya.
La firma de color de 4×4
Todas las imágenes implicadas —cada celda del objetivo y cada foto que subes— se reducen a la misma descripción compacta: una rejilla de 4×4 colores medios convertidos a CIELAB. Son dieciséis casillas de tres números, cuarenta y ocho valores por imagen. Se usa CIELAB porque las distancias en ese espacio se parecen razonablemente a lo distintos que dos colores le resultan al ojo humano, cosa que la distancia en RGB no consigue. El emparejamiento es entonces una búsqueda del vecino más cercano: para cada celda, la foto cuya firma esté más cerca.
Conservar la rejilla en lugar de resumir cada foto en un solo color medio es la clave de todo el diseño. Un promedio te dice que una foto es más o menos azul medio; no te dice si es un cielo claro sobre un mar oscuro o una pared azul uniforme. Colocadas, esas dos imágenes no se parecen en nada. Como la firma conserva dónde caen las zonas claras y oscuras, una foto con la esquina superior izquierda luminosa se elegirá para una celda con esa misma esquina luminosa, y la estructura interna de cada imagen pequeña se alinea con la de la región que rellena. Eso es lo que hace que el mosaico aguante de cerca y no solo de lejos.
Repeticiones y penalización por cercanía
Salvo que subas tantas fotos como celdas hay, las teselas se repetirán: es lo normal y no es un defecto. Lo que estropea un mosaico no es la repetición, sino la acumulación: la misma imagen tres veces seguidas en una zona de cielo. Por eso el generador añade una penalización por cercanía durante el emparejamiento, de forma que una tesela usada hace poco cerca de ahí puntúa peor de lo que indicaría su distancia de color. El control de variedad decide la fuerza de esa penalización. Con variedad baja siempre gana la mejor coincidencia y se aceptan los grupos; con variedad alta las repeticiones se reparten por todo el lienzo a cambio de coincidencias algo menos exactas. La penalización está acotada, así que ni en el máximo se coloca una tesela absurda para su celda.
Tintar hacia el objetivo
Ni con una fototeca enorme habrá una tesela exacta para cada celda. Por eso cada foto colocada se mezcla con el color medio de su celda en la proporción que tú decidas. Con el tinte al 0 % las fotos quedan intactas: se reconocen perfectamente, pero puede que la imagen general solo se lea desde lejos. Al 100 % el objetivo se reproduce casi con exactitud mientras las fotos se diluyen en color plano. Todo lo interesante está en medio, y el valor adecuado depende sobre todo de cuántas fotos tengas: una colección amplia y variada necesita muy poco tinte, mientras que veinte fotos repartidas en mil celdas necesitarán bastante.
Difuminado: cómo veinte fotos cubren mil celdas
Cuando tu conjunto de fotos no cubre la gama de colores del objetivo, regiones enteras reciben la misma foto ligeramente equivocada y el mosaico se convierte en manchas planas. El difusión de error de Floyd–Steinberg opcional lo resuelve igual que permite que una imagen de pixel art con ocho colores siga leyéndose bien: la diferencia entre lo que pedía la celda y lo que aporta la tesela elegida se reparte entre las celdas vecinas aún sin rellenar. Esas vecinas compensan en sentido contrario y el ojo promedia la alternancia hasta el color pretendido. Es el ajuste más eficaz cuando tienes muchas menos fotos que celdas.
Exportar a resolución de impresión
La vista previa es pequeña a propósito para poder recalcularse mientras mueves un control, y la descarga no sale de ella. Cada foto-tesela se guarda en memoria como una miniatura de trabajo de 160 píxeles, que es todo lo que la vista previa puede mostrar. Al exportar, toda tesela cuya celda final sea mayor que esa miniatura se vuelve a dibujar desde su foto original al tamaño real de celda —de una en una, liberándola antes de pasar a la siguiente, de modo que una exportación grande nunca tiene que retener el álbum entero a tamaño completo a la vez—. Por debajo de 160 píxeles por celda, la miniatura guardada ya tiene más detalle del que la celda puede mostrar y no se vuelve a decodificar nada. En ambos casos las imágenes pequeñas son realmente nítidas y no una ampliación de píxeles de pantalla. Puedes indicar la salida como ancho exacto en píxeles o como tamaño de papel más DPI, y el resultado se limita a un techo seguro —10.000 píxeles en el lado largo y 30 megapíxeles de área—, porque por encima de eso muchos dispositivos, sobre todo móviles, devuelven un lienzo en blanco. Ese límite es real y es el límite honesto de la herramienta: un póster a 300 DPI está al alcance, una valla publicitaria no.
Cómo conseguir un buen resultado
La calidad del mosaico depende muchísimo más de tu colección de fotos que de cualquier ajuste. Apunta a varios cientos de imágenes variadas, y varía sobre todo el brillo: mil fotos hechas todas en la misma luz de tarde le dan muy poco margen al emparejador, mientras que doscientas que vayan de playas luminosas a interiores oscuros cubren el rango tonal del objetivo. Para la imagen objetivo, elige algo con una silueta clara y sencilla: una cara, una mascota, un logotipo, un perfil urbano. Ni el texto pequeño ni el detalle fino sobreviven a reconstruirse con fotografías, por muchas teselas que uses. Si quieres reinterpretar la misma foto de otra forma, nuestro generador de pixel art usa la misma idea de difuminado pero con una paleta fija en lugar de una fototeca.