Una imagen de 4.096×4.096 tiene 16.777.216 píxels. El número de colores RGB representables con 8 bits por componente (24 bits por color) es de 16.777.216. Esto quiere decir que en una imagen de 4.096×4.096 caben exactamente todos los colores posibles RGB de 24 bits.
Hay muchas maneras de distribuir los colores en la imagen. Esta es una, aunque está reducida y por tanto le faltan colores, pero enlaza a la verdadera de 4096×4096:
Aquí el programa PHP que la genera en formato TGA (la que hay para descarga ha sido convertida después a PNG con GIMP):
<?php
$tgahdr = "\0\0\2\0\0\0\0\0\0\0\0\0\x00\x10\x00\x10\x18\40";
$f = fopen($argv[1], "wb");
fwrite($f, $tgahdr);
for ($gl = 0; $gl < 16; $gl++)
for ($r = 0; $r < 256; $r++)
{
$r2 = ($gl & 1) == 0 ? $r : 255-$r;
$line = "";
for ($gh = 0; $gh < 256; $gh += 16)
for ($b = 0; $b < 256; $b++)
{
$b2 = ($gh & 16) == 0 ? $b : 255-$b;
$line .= chr($b2) . chr($gh+$gl) . chr($r2);
}
fwrite($f, $line);
}
fclose($f);
?>


No comments:
Post a Comment