img2ascii es una una implementación en PHP de una función que te permitirá mostrar la representación de una imagen utilizando caracteres ASCII. Este ejemplo esta basado en el post realizado por Federico Javier Elgarte llamado Arte ASCII con PHP.
Convirtiendo imágenes a ASCII
Lo primero es obtener pixel a pixel el color de la imagen seleccionada, para ello utilizaremos la función imagecolorat el cual devuelve el color en formato RGB del pixel seleccionado.
imagecolorat($imagen, x, y);
Luego al momento de generar el texto tenemos que pintarlo, como en html los colores se escriben en hexadecimal, necesitamos una función que convierta de RGB a Hexadecimal, esto lo hacemos de la forma:
sprintf("%06X", $valor);
Luego uniendo estos puntos, recorremos todos los pixels de la imágenes y generamos nuestro primer ASCII como imagen.
$imagen = imagecreatefromjpeg("imagen.jpg"); print ""; for($y=0;$y"; imagedestroy($imagen);x"; } print "
"; } print "
Se puede observar que hemos creado una cadena de texto con el caracter x y lo hemos pintado de acuerdo al color obtenido de la imagen, con lo cual obtenemos el siguiente resultado en arte-ascii.php.
Creando la función img2ascii
Basado en los ejemplo anterior creamos una función llamada img2ascii el cual recibirá dos parámetros: el primero es la ruta del archivo de imagen y el segundo es una cadena de texto que la utilizaremos para generar la imagen. Llamaremos a nuestro archivo img2ascii.php
// ——————————-
// img2ascii: convert img to ASCII
// ——————————-
function img2ascii($imagen, $palabra) {
$arrTxt = str2array($palabra);
$totTxt = count($arrTxt);
$k = 0;
$imgFile = imagecreatefromjpeg($imagen);
print «
for($y=0; $y
if ($totTxt > $actTxt) {
$actTxt+= 1;
} else {
$actTxt = 0;
}
}
print «
«;
}
print «
«;
imagedestroy($imgFile);
}
function str2array($str) {
$ret = array();
for ($i=0; $i
Finalmente para los que desean practicar mas con este ejemplo les dejo los archivos fuente de los ejemplos mostrados en este post.
Comentarios Total 3 comentarios
Publicado: 17/10/2007 12:53 am
muy buenas, cada vez me sorprende aun mas este blog!!…
saludos y sigue asi, exelente.
Publicado: 27/10/2007 4:05 am
muy wapo el codigo este. Pero teneis un fallo :P
en la funcion dnd hay q cambair la variable $k, por $actTxt para que funcione correctamente. Un fallo tonto xd
Saludos
Publicado: 06/11/2007 1:47 am
Está muy bueno, pero.. ¿Hay alguna manera de que los usuarios que lo visiten puedan subir su propia imágen y hacerle ese proceso y no que solamente nosotros podamos subir la imágen? Estaria muy bueno, yo digo de hacer algo similar a los ejemplos de imagehosting, pero subir la imágen y que automaticamente haga el proceso.