lunedì, Aprile 22, 2024
HomeProgrammazionePHP, trasformiamo un immagine in testo ascii html

PHP, trasformiamo un immagine in testo ascii html

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

BisonTech.net partecipa al Programma Affiliazione Amazon EU, e ad altri programmi di affiliazione che consente al sito di percepire una commissione pubblicitaria fornendo link di affiliazione su amazon e altri partner.

Stefano
Stefano
Sono un tech enthusiast, appassionato di programmazione, marketing e videogames. Adoro sperimentare tutto ciò che la tecnologia ha da offrire. Lavoro con la tecnologia da oltre 20 anni.

LASCIA UN COMMENTO

Per favore inserisci il tuo commento!
Per favore inserisci il tuo nome qui

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

ULTIMI POST

POPOLARI

SMANETTONI