Eso es un poco de una extraña petición :)
Por lo tanto, lo que se desea utilizar aquí es php-gd, para empezar. En general, esto se incluye al instalar php en cualquier sistema operativo con repositorios decentes, pero solo en caso de que no sea para usted, puede obtener las instrucciones de instalación aquí;
http://www.php.net/manual/en/image.setup.php
En primer lugar, tendremos que averiguar exactamente qué tan grande la imagen tendrá que ser de ancho; la altura obviamente siempre será una.
So;
$str = $_GET['str'];
$img_width = strlen($str);
strlen nos dirá la cantidad de caracteres en la cadena str $, y ya que estamos dando un píxel por carácter, la cantidad de caracteres nos dará el ancho requerido.
Para facilitar el acceso, divida la cadena en una matriz, con cada elemento para cada píxel por separado.
$color_array = str_split($str);
Ahora, establezcamos un "puntero", para qué píxel estamos dibujando. Es php, por lo que no NECESITA initalizar esto, pero es bueno estar ordenado.
$current_px = (int) 0;
Y ahora puede inicializar GD y comenzar a hacer la imagen;
$im = imagecreatetruecolor($img_width, 1);
// Initialise colours;
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);
// Now, start running through the array
foreach ($color_array as $y)
{
if ($y == 1)
{
imagesetpixel ($im, $current_px , 1 , $black);
}
$current_px++; // Don't need to "draw" a white pixel for 0. Just draw nothing and add to the counter.
}
Esto dibujará su imagen, entonces todo lo que necesita hacer es mostrarlo;
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
Tenga en cuenta que la declaración blanca $ no es necesaria en absoluto - me dejó en para darle una idea de cómo se declara diferentes colores con Di-s.
Probablemente necesites depurar esto un poco antes de usarlo, hace mucho tiempo que no uso GD. De todos modos, espero que esto ayude!
+1 para preguntas interesantes! – hexafraction