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).