Manipolare le immagini con le GD2

07/03/2006

Le librerie GD sono uno strumento molto potente con il quale possiamo sia creare immagini da zero, sia manipolare file grafici preeesistenti. In questo articolo descriveremo alcune funzioni dedicate alla manipolazione delle immagini in modo da arricchire con alcuni esempi pratici il set di strumenti in mano al lettore.

Innanzitutto, presenteremo un piccolo script utile per tutti coloro che desiderano avere il pieno controllo sui fonts da utilizzare nei testi delle loro immagini; a questo scopo proponiamo il seguente listato:

<?
$img = imagecreate (180, 35); 
$sfondo = imagecolorallocate($img,0xC0,0xC0,0xC0); 
$stringa = imagecolorallocate($img,0xF0,0xF0,0xF0); 
imagettftext 
($img,15,3,14,27,$stringa,
"C:\WINNT\Fonts\arial.ttf","Font: Arial");
header("Content-type: image/png");
imagepng($img); 
?>
L'output conseguente sarà un'immagine come questa:

Rispetto allo script proposto nell'articolo precedente abbiamo due nuove funzioni: imagettftext() simile a imagestring() ma più ricca di opzioni, anch'essa infatti scrive una stringa all'interno di un'immagine ma permette inoltre di stabilirne grandezza del carattere (15), inclinazione (3), distanza dx/sx (14) e distanza up/down (27); imagepng() permette invece di salvare un'immagine PNG creata con imagecreate().

Passando come parametro alla funzione imagettftext() il percorso di un font siamo inoltre riusciti a determinare il carattere della scritta che compare nella nostra immagine.

Sarà possibile effettuare identiche operazioni anche su un'immagine PNG preesistente, in questo caso sarà sufficiente non includere nel listato tutta la parte relativa alla creazione dell'immagine e assegnare come valore alla variabile "$img" il percorso relativo al file grafico che desideriamo modificare.

A questo punto, per visualizzare l'immagine, sarÓ sufficiente dichiararne l'intestazione (header), nel nostro caso una PNG (Content-type: image/png) e generare l'output con la funzione dedicata a questa estensione: imagepng().

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