Imágenes generadas con gd y una escala de luces y sombras basada en la densidad visual de caracteres ascii.



<?php
//código utilizado para crear las imágenes
$archivo='marciano.txt';
$lineas=file($archivo);
$tot=count($lineas);
$largo=strlen($lineas[0]);
$propw=imagefontwidth(1)*(strlen($lineas[0]))/6;
$proph=imagefontheight(1)*$tot/6;
$im=imagecreate((strlen($lineas[0])),$tot);
$fondo=imagecolorallocate($im,150,150,150);
//Para obtener imagen en escala de grises:
$col['$']= imagecolorallocate($im,190,190,190);
$col['%']= imagecolorallocate($im,220,220,220);
$col['#']= imagecolorallocate($im,100,100,100);
$col['M']= imagecolorallocate($im,50,50,50);
$col['N']= imagecolorallocate($im,80,80,80);
$col['H']= imagecolorallocate($im,95,95,95);
$col['A']= imagecolorallocate($im,120,120,120);
$col['Q']= imagecolorallocate($im,120,120,120);
$col['Y']= imagecolorallocate($im,150,150,155);
$col['2']= imagecolorallocate($im,160,160,160);
$col['0']= imagecolorallocate($im,120,120,120);
$col['D']= imagecolorallocate($im,130,130,130);
$col['U']= imagecolorallocate($im,130,130,130);
$col['+']= imagecolorallocate($im,245,245,245);
$col['.']= imagecolorallocate($im,245,245,245);
$col[' ']= imagecolorallocate($im,245,245,245);
$col["\r"]= imagecolorallocate($im,255,255,255);
$col["\n"]= imagecolorallocate($im,255,255,255);
/*Para obtener imagen en escala Rojo a Blanco fijamos a 255 el canal Red */
/*Para obtener imagen en escala Verde a Blanco fijamos a 255 el canal Green */
/*Para obtener imagen en escala Azul a Blanco fijamos a 255 el canal Blue */
for($a=0;$a<$tot-1;$a++){
for($b=0;$b<$largo;$b++){
imagesetpixel ($im,$b,$a,$col[$lineas[$a][$b]]);
}
}
$width = imagesx($im);
$height = imagesy($im);
$tmp_img = imagecreatetruecolor($propw, $proph);
imagecopyresampled($tmp_img, $im, 0, 0, 0, 0,$propw, $proph, $width, $height);
imagejpeg($tmp_img,'imagen1.jpg',100);
imagedestroy($im);
imagedestroy($tmp_img);
?>