Su tutti i piano hosting ove è attivo PHP, è possibile utilizzare le funzioni per la gestione delle immagini relative alla libreria GD2
ATTENZIONE!
Se gli script che utilizzano questa libreria salvano la nuova immagine sul vostro spazio, allora assicuratevi che la cartella di lavoro sia configurata con i permessi di scrittura, che potete impostare attraverso il vostro pannello di controllo alla sezione gestione permessi cartelle e files sui piani windows. Sui piani linux dovrete utilizzare FTP per impostare chmod 777 sulla cartella di lavoro.
Questo script mostra in maniera semplice come creare una immagine con un testo. Lo script calcola automaticamente la dimensione in pixel della scritta, in maniera da creare una immagine della giusta dimensione con un padding di 10 pixel tramite la funzione imagecreate.
Una volta creata, l'immagine viene salvata su disco, tramite la funzione imagejpeg, al percorso relativo "images/test1.jpg": naturalmente il server deve poter scrivere sulla cartella "images".
Una volta salvata su disco oppure una volta inviata in streaming, l'immagine deve essere rimossa dalla memoria del server tramite la funzione imagedestroy
Questo è il risultato dello script:
imagestring non è la sola funzione che permette di scrivere testo nell'immagine. Se desiderate una funzione con più potenzialità, che vi permette tra le altre cose di scegliere il font, potete utilizzare imagettftext
In questo esempio viene utilizzata la funzione imageline per tracciare una linea dalla posizione ($x0,$y0) alla posizione ($x,$y). Il colore del pennello è impostato dalla funzione imagecolorallocate.
La coppia (x=0,y=0) è il riferimento all'angolo in alto a sinistra dell'immagine. Questo script disegna prima l'ascissa a metà immagine, poi calcola il rapporto tra l'ampiezza orizzontale del grafico (in questo caso 2*PI_greco radianti, quindi ~6.28, memorizzata nella variabile $xnumerico) e l'ampiezza in pixel dell'immagine, che verrà utilizzato per ottenere le coordinate fisiche per il tracciamento della linea a partire dalle coordinate logiche restituite dalla funzione x=sin(y). In particolare per le ordinate è necessario tenere conto anche dell'offset round($maxY/2) e del fatto che al contrario del piano cartesiano y cresce dall'alto verso il basso.
Il grafico viene tracciato infine all'interno di un ciclo while.
Una volta salvata su disco oppure una volta inviata in streaming, l'immagine deve essere rimossa dalla memoria del server tramite la funzione imagedestroy
Questo script è simile al precedente, ed è utile per disegnare un istogramma verticale a partire da un vettore di valori.
Qui sono utilizzate le funzioni imagerectangle che disegna un rettangolo vuoto (quindi il bordo di un rettangolo) dalle coordinate (x1,y1) - angolo in alto a sinistra - alle coordinate (x2,y2) - angolo in basso a destra - e imagefilledrectangle che disegna un rettangolo pieno alle coordinate indicate.
Una volta salvata su disco oppure una volta inviata in streaming, l'immagine deve essere rimossa dalla memoria del server tramite la funzione imagedestroy
Questo esempio è il più interessante di quelli proposti in questa pagina. Lo script, chiamato resize.php, effettua un ridimensionamento di una immagine e invia il risultato direttamente in streaming al browser anziché salvare l'immagine su disco. Questo può risultare di particolare utilità per creare thumbnail "al volo" senza doverli memorizzare nel vostro spazio.
Resize.php accetta sulla query string la dimensione massima orizzontale e verticale dell'immagine finale e l'URL dell'immagine sorgente, che può essere anche nella forma http://www.vostrodominio.it/immagine.jpg. Ricava quindi la dimensione della sorgente tramite la funzione getimagesize e calcola il più forte rapporto di compressione fra orizzontale e verticale, in maniera da mantenere le proporzioni dell'originale. Vengono quindi calcolate le nuove dimensioni e viene creata una nuova immagine tramite imagecreatetruecolor. Infine, tramite la funzione imagecopyresampled sulla nuova immagine viene copiata la vecchia ricampionata e ridimensionata prima di inviarla in streaming al browser.
Una volta salvata su disco oppure una volta inviata in streaming, l'immagine deve essere rimossa dalla memoria del server tramite la funzione imagedestroy
Questo script può essere richiamato direttamente dal browser inserendo la query string, oppure come parametro sorgente di un tag html <img>, come mostrato qui di seguito:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<HTML>
<head>
<title> GD - Test di ridimensionamento </title>
<meta name="Generator" content="EditPlus">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
</head>
<body>
<img src="resize.php?maxx=100&maxy=50&src=images/grafico.jpg" alt="resized">
</body>
</html>
Questo è il risultato dello script, che ridimensiona l'immagine relativa all'esempio 2: