Sí, a crear tu propio algoritmo de compresión de imágenes con paleta dinámica.
Por ejemplo:
Código PHP:
Ver original<?php
header( "Content-type: image/png" ); $imageName="cat.jpg";
for ($x=0;$x<$size[0];$x++)
{
for ($y=0;$y<$size[1];$y++)
{
$rango=51;
$r=(int
)floor($pixelColor["red"]/$rango)*$rango; $g=(int
)floor($pixelColor["green"]/$rango)*$rango; $b=(int
)floor($pixelColor["blue"]/$rango)*$rango;
}
}
?>
He creado una paleta de 216 colores (51 es divisor de 255, aunque en realidad puedes poner cualquier cifra entre 0 y 255; si no son divisores, habrá un insignificante e indetectable error en el redondeo de colores cercanos al blanco absolto), cada componente de color puede coger valores de 0, 51, 102, 153, 205 y 255. Seis colores. Tres componentes=6*6*6=216.
El límite es tu imaginación. Puedes crear tú en un array la paleta, y hacer una función que escoja el color aproximado (por ejemplo sumando la diferencia de cada componente del pixel de la imagen con el componente de cada color de la paleta, y quedarse el menor).