Creare immagini da zero con le GD2

09/03/2006

In questo articolo, descriveremo la procedura necessaria per la creazione di un'immagine in formato "JPG" utilizzando esclusivamente le librerie GD2 e PHP, senza l'ausilio di alcun software per la grafica.

Sar un'occasione utile per vedere all'opera alcune tra le funzioni specifiche per GD2. Ma diamo subito spazio al codice:

<?
$size_testo = 10;
$larghezza_testo = imagefontwidth($size_testo);
$altezza_testo = imagefontheight($size_testo);
$testo = "Creaimo un'immagine con le GD2 di PHP";
$larghezza = strlen($testo);
$larghezza_px = $larghezza_testo * $larghezza;
$img = imagecreate($larghezza_px + 10,$altezza_testo + 10);
$sfondo = imagecolorallocate($img, 0xC0, 0xC0, 0xC0);
$colore_testo = imagecolorallocate($img,0xF0,0xF0,0xF0);
imagestring($img,$size_testo,5,5,$testo,$colore_testo);
imagejpeg($img, "img/img.jpg");
imagedestroy($img);
echo "<img src=\"img/img.jpg\">";
?>
Questo piccolo script, ha la funzione di produrre in output un semplice banner colorato con una scritta al centro:

Nel corso del listato sono entrate in gioco numerose funzioni con le quali stato possibile stabilire nei minimi particolari le varie caratteristiche dell'immagine desiderata: dimensioni e colore dello sfondo, dimensioni e colore del testo, formato dell'immagine, percorso della cartella in cui l'immagine deve essere creata e salvata e molto altro.

Innanzitutto, abbiamo stabilito le dimensioni del testo assegnando un valore ad una variabile che abbiamo passato come argomento alle funzioni imagefontwidth() e imagefontheight() utili a stabilire rispettivamente larghezza e altezza del nostro testo.

La funzione imagecreate() ha accettato come parametri i valori risultanti dal calcolo dell'altezza e della larghezza del testo, a cui nel nostro caso abbiamo aggiunto un padding da 10 px tenendo conto della cornice del banner

imagecolorallocate() ci ha permesso di determinare la colorazione dello sfondo, gli argomenti passati alla funzione sono stati innanzitutto l'immagine appena creata e, in secondo luogo, i codici realtivi alla colorazione da abbinare. Nello stesso modo, la medesima funzione ci ha consentito di stabilire la colorazione da utilizzare per la stringa di testo da inserire all'interno del banner.

imagestring() una funzione che permette di inserire una stringa alfanumerica, nel nostro caso una frase di senso compiuto, all'interno di un'immagine; i parametri utilizzati sono stati: l'immagine, le dimensioni del testo, la stringa da immettere e il colore abbinato a quest'ultima.

imagejpeg() si occupata delle operazioni di salvataggio; a quest'ultima, sono stati infatti passati come argomenti la variabile contenente come valore l'immagine appena creata e il percorso alla cartella di destinazione.

Infine, abbiamo utilizzato la funzione imagedestroy() che accetta come argomento l'immagine creata, in modo da rimuoverla dalle risorse allocate, infatti essa stata salvata in una cartella e non pi necessaria per svolgere alcuna operazione.

Attenzione: questo articolo è stato concesso in esclusiva per la pubblicazione a Mrwebmaster.it; ne è vietata la riproduzione, anche parziale, senza l'esplicito consenso dell'autore e della redazione di Mrwebmaster.it.

© Claudiogarau.it :: Tutorials & Scripts, PHP, Linux and more.

Stampa :: Torna alla Home