(OBSERVACION: No usen archivos de imagen con resoluciones muy grandes (sino, prueben y van a entender porque jaja) )
bueno los argumentos son simples
1- nombre del archivo (path)
2- espaciado entre caracteres (recomiendo usar 0 (default) o 1, mas grandes quedan feos), y tamaño de caracteres que como default viene en 1px
Código PHP:
<?php
function img2char($archivo, $espaciado_caracter = 0, $tamanio_caracter = 1, $caracter = '@')
{
$img_size = @getimagesize( $archivo );
if( $img_size['mime'] == "image/jpeg" ) {
$img_origen = @imagecreatefromjpeg( $archivo );
} elseif( $img_size['mime'] == "image/png" ) {
$img_origen = @imagecreatefrompng( $archivo );
} elseif( $img_size['mime'] == "image/gif" ) {
$img_origen = @imagecreatefromgif( $archivo );
} else {
$img_origen = @imagecreatefromwbmp( $archivo );
}
if( $img_origen ) {
$html = '<div style="letter-spacing: '.$espaciado_caracter.'px; line-height: '.(($espaciado_caracter > 0) ? ($espaciado_caracter*2) : 1).'px; font-size: '.$tamanio_caracter.'px; font-family: Courier New, Courier, monospace;">';
for($y = 1; $y<$img_size[1]; $y++) {
for($x = 1; $x<$img_size[0]; $x++) {
$rgb = imagecolorat( $img_origen, $x, $y );
$pixel_color = sprintf( "%06X", $rgb );
$html .= '<span style="color: #'.$pixel_color.';">'.$caracter.'</span>';
}
$html .= '<br />';
}
$html .= '</div>';
imagedestroy( $img_origen );
return $html;
} else {
return 'No se pudo crear la imagen';
}
}
?>
Código PHP:
echo img2char( "imagen.jpg" ); //default
Código PHP:
echo img2char( "imagen.jpg", 1 );
Código PHP:
echo img2char( "imagen.jpg", 1 , 2);