Avete presente le Ascii art? ossia i disegni fatti con i caratteri, ecco come creare una semplice pagina php che fa proprio questo a colori ovviamente…
Una volta quando c’era soltanto la console di comandi (dos o unix) i disegni venivano fatti con una serie di caratteri che andavano a formare il disegno, nel tempo è diventata una cultura informatica e oggi è pieno il mondo di disegni fatti con i caratteri, oggi però vediamo come convertire un immagine o foto usando il php, queste istruzioni creano una pagina con tanti span contenenti “#” colorati minuscoli che vanno a formare il pixel colorato, trasformando cosi un immagine in testo.
Questa è una funzione didattica, praticamente si apre un immagine usando ImageCreateFromJpeg (perchè in questo caso è jpg) e si scorre pixel per pixel la foto poi con la funzione ImageColorAt si prende a una determinata posizione il colore nel formato RGB, che verrà poi usato nel css inlinea (all’interno dell’attributo style).
Ecco il codice:
<html>
<head>
<title>Ascii</title>
<style>
body{
line-height:1px;
font-size:1px;
}
</style>
</head>
<body>
<?php
$image = 'logo.jpg';
$img = ImageCreateFromJpeg($image);
$width = imagesx($img);
$height = imagesy($img);
for($h=0;$h<$height;$h++){
for($w=0;$w<=$width;$w++){
$rgb = ImageColorAt($img, $w, $h);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
if($w == $width){
echo '<br>';
}else{
echo '<span style="color:rgb('.$r.','.$g.','.$b.');">#</span>';
}
}
}
?>
</body>
</html>
volendo si può giocare anche con il carattere e la dimensione dei pixel o fare caricare all’utente la foto (controllate il formato che in base al formtato cambia la funzione usata per caricare l’immagine).

