Cosa sono le immagini dinamiche?

Sono delle immagini che contengono testi/o che possono variare a seconda di come viene preimpostato.

Passiamo alla parte pratica, come si crea una semplice immagine dinamica?

Questo è il codice per un immagine base:

<?php
header("Content-type: image/png");
$img = imagecreatefrompng('download.png');
imagealphablending($img, true);
imagesavealpha($img, true);
imagepng($img);
?>

Vediamo in cosa consistono queste funzioni:

<?php
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:

<?php
$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=vostrotestoalla fine del link.
?>