Creare Immagini Dinamiche in PHP
Come creare delle immagini con contenuto variabile tramite PHP
Dopo le varie richieste ho deciso di creare una guida su come creare delle immagini dinamiche in PHP.
Cosa sono le immagini dinamiche? Sono delle immagini che contengono testi/o che possono variare a seconda di come viene preimpostato.
Facciamo un esempio, in questa immagine il testo con il numero dei clic varia, ma l'indirizzo dell'immagine non cambia. Questo succede perchè il testo è stato aggiunto tramite PHP e non nella creazione dell'immagine. Potete notare la differenza (Senza Script | Con Script)
Adesso passiamo alla parte pratica, come si crea una semplice immagine dinamica?
Questo è il codice per un immagine base:
<? header("Content-type: image/png"); $img = imagecreatefrompng('download.png'); imagealphablending($img, true); imagesavealpha($img, true); imagepng($img); ?>
Vediamo in cosa consistono queste funzioni:
- header("Content-type: image/png") // Comunica al server di far trattare la pagina come un immagine, e non come una pagina web.
- $img = imagecreatefrompng('download.png') // Inserisce l'immagine download.png come sfondo, cioe la base (Si può creare anche senza questa funzione, utilizzando rettangoli, cerchi e quadrati.)
- imagealphablending($img, true) & imagesavealpha($img, true) // Queste due funzioni permettono di visualizzare le trasparenze dell'immagine download.png (Senza esse visualizzerete lo sfondo nero, ove ci fosse trasparenza)
- imagepng($img) // Mostra l'immagine creata con tutte le sue impostazioni
Bene, ma in questo modo abbiamo creato una semplice immagine png, che vantaggi ne possiamo trarre da questo sistema?
Come aggiungiamo del testo variabile sopra l'immagine?
Abbiamo visto come creare un immagine tramite il PHP, adesso arriva la parte più importante e utile, come aggiungere del testo variabile sopra l'immagine.
A questo ci viene incontro la funzione imagettftext, vediamo come usarla:
Procuriamoci il file TTF di qualche font (potete scaricarlo o estrarlo dalla cartella Font di windows), inseriamolo nella cartella dell'immagine e per comodità inseriamolo in una variabile nello script. In questo modo: $font = "font.ttf";
Creiamo una variabile con il colore, in questo modo: $bianco = imagecolorallocate($img,255,255,255); (Inseriamo i valori RGB del colore)
Una volta fatto questo possiamo utilizzare la funzione imagettftext, imagettftext ($img , 10(Grandezza), 0(Angolazione), 10(Posizione X), $y(Posizione Y), $bianco(Variabile Colore), $font(Variabile Font), "Testo"(Stringa/Variabile con testo da inserire));
In questo modo possiamo inserire del testo sopra l'immagine, per rendere il testo variabile non vi resta che sostituire "testo" con una variabile creata da voi, e dovrete essere voi a scegliere quando e come cambiare, ovviamente questo non è un corso di PHP, la guida è pertanto indirizzata a persone con almeno conoscenze base sul PHP.
Per concludere ecco un piccolo esempio che potrà chiarirvi ulteriormente le idee in caso di dubbi:
<? $testo = $_GET['testo']; // Crea la variabile $testo, il contenuto verrà preso tramite il metodo GET (Alla fine del link ?testo=XXX) header("Content-type: image/png"); // Comunica al Browser di mostrare la pagina come immagine, e non come pagina PHP $img = imagecreatefrompng('download.png'); // Inserisce un immagine come sfondo $bianco = imagecolorallocate($img,255,255,255); // Crea il colore bianco imagealphablending($img, true); // Permette di visualizzare le trasparenze dell'immagine imagesavealpha($img, true); imagettftext($img,6,0,10,40,$bianco,"font.ttf",$testo); imagepng($img); // Mostra l'immagine creata con tutte le funzioni ?>
In questo modo si creerà un immagine e sarà visualizzato il testo che invierete voi aggiungendo ?testo=vostrotesto alla fine del link.
Troverete l'archivio .rar allegato. Grazie per aver letto

Download Archivio: http://www.mediafire...zhsgokqdf2dc3bp
Messaggio modificato da Luigi96 il 10 novembre 2011 - 18:24