PHP – Creare e modificare immagini dinamicamente

Manipolare le immagini con PHP è davvero divertente: in poche righe di codice si possono creare degli effetti e delle particolarità davvero interessanti. L’esempio che vedremo in questo articolo mostrerà come modificare dinamicamente un’immagine data o passata come parametro: nel dettaglio, andremo a scrivere sull’immagine data una particolare stringa, di cui possiamo modificare colore, posizione, carattere, ecc.

L’esempio di ciò che andremo ad implentare è disposibile a questo indirizzo qui.

Creiamo un file php, figure.php, e analizziamo il codice da inserire.

<?
/*
Innanzittutto comunichiamo a chi utilizzerà questa pagina (ad es. il browser) che il contenuto della stessa deve essere interpretato come un’immagine. In questo modo, se volessimo utilizzare l’immagine creata con questo codice in un tag html <img>, sarà sufficiente scrivere una riga di questo tipo: <img src=”figure.php” />
*/
header(“Content-type: image/jpeg”);

/*
Assegnamo il valore che avrà la prima stringa che scriveremo nell’immagine. Se ad esempio volessimo fare un album di figurine di calcio, che in base alla figura assegna un nome diverso, si potrebbe “giocare” con queste due stringhe per assegnare il nome e il cognome appropriato in base alla figurina che carichiamo o passiamo come parametro.
*/
$string = strtoupper(“FRANCESCO”);

/*
Assegnamo il cognome del giocatore
*/
$string2 = strtoupper(“TOTTI”);

/*
imagecreatefromjpeg è una funzione php che permette di creare un’immagine da un file o da un URL. Nel nostro caso creiamo una figurina da un’immagine di partenza, quella passata come parametro. La funzione restituisce un identificativo ($im) che rappresenta l’immagine create dal nostro file di partenza. Attraverso questo identificativo possiamo modificare l’immagine a nostro piacimento.
*/
$im = imagecreatefromjpeg(“http://www.marcolecce.com/blog/Esempi/esempio7/totti.jpg”);

/*
imagecolorallocate permette di creare ed allocare un colore ad un’immagine. Anche in questo caso viene restituito un identificativo ($color) che rappresenta il colore secondo i componenti RGB passati come parametri.
*/
$color = imagecolorallocate($im, 255, 255, 255);
/*
Attraverso queste due istruzioni ci calcoliamo la posizione in cui verrano stampate sull’immagine le stringhe che passiamo come parametri. Nel nostro caso stampiano nome e cognome del giocatore nel centro dell’immagine che andremo a creare.
*/
$px = (imagesx($im) – 7.5 * strlen($string)) / 2;
$px2 = (imagesx($im) – 7.5 * strlen($string2)) / 2;

/*
imagestring è la funzione che permette di disegnare la stringa sull”immagine: il primo paramettro è l’identificativo dell’immagine, poi c’è le dimensione del carattere, la posizione orizzontale, la posizione verticale, la stringa ed infine il colore.
*/
imagestring($im, 100, $px, 60, $string, $color);
imagestring($im, 100, $px2, 90, $string2, $color);

/*
Infine utilizziamo la funzione imagejpeg che invia in output al browser o ad un file l’immagine che abbiamo creato (nel nostro caso creiamo una jpg, ovviamente vi sono le corrispettive funzioni per gli altri formati come gif, png,ecc; ATTENZIONE: se combiate formato ricordate di far coincidere quest’ultimo con quello dichiarato alla prima di riga di codice, altrimenti non ci sarà corrispondenza e vi saranno problemi di visualizzazione.
)*/
imagejpeg($im);

/*
Una volta visualizzata l’immagine, se non ci serve per altro, possiamo liberare con la funzione imagedestroy() la memoria occupata dall’immagine.
*/
imagedestroy($im);

?>

Ovviamente l’esempio qui presentato è molto semplice, ma il meccanismo di funzionamento rimane pressocchè il medesimo utilizzando le altre funzioni che il PHP mette a disposizione: da questo momento, potete provarle tutte sulla vostra immagine “virtuale”…buon divertimento! 😉

3 commenti su “PHP – Creare e modificare immagini dinamicamente”

  1. Pingback: indice.it
  2. Pingback: diggita.it

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

*