Programmazione Web » Php » Immagini di dimensione variabile con Php e GD Library
Immagini di dimensione variabile con Php e GD Library
Difficoltà:
Scritto da Leo Di Donato
Sito Web: ![]()
Questo tutorial è stato letto 1012 volte
Per comprendere questa lezione è necessario aver letto quella precedente: "Creare immagini al volo con GD Library di Php".
In questa lezione vi insegnerò come creare, grazie alle apposite funzioni PHP e a GD Library , un'immagine la cui lunghezza varia in modo direttamente proporzionale ad una percentuale (che dovrete però calcolarvi in un'altra pagina... se vi presento il piatto pronto non imparerete mai a cucinare!).
Chiamate la pagina "barra.php" ed inseriteci il seguente codice:
<?php
$height = 15;
$width = 100; // E' consigliato se dobbiamo creare un'immagine che rappresenti una percentuale
$imm = imagecreate($width, $height);
$bg = imagecolorallocate($imm, 255, 255, 255); // Bianco
$barra = imagecolorallocate($imm, 255, 0, 0); // Rosso
imagefilledrectangle($imm, 0, 0, $_GET['barra_percent'], $height, $barra);
imagerectangle($imm, 0, 0, $width, $height, $bg);
header("Content-type: image/png");
imagepng($imm);
imagedestroy($imm);
?>
Vi spiegherò ora come utilizzare questa immagine per i fini suddetti. I più attenti avranno notato che alla riga 7 del codice sovrastante ho inserito al posto di $width la variabile "$_GET[' barra_percent ']".
Questa prenderà il valore di "barra_percent" con metodo GET da un'altra pagina.
Ecco come fare per far variare il width della nostra immagine in base alla percentuale:
- Rechiamoci in vista codice nella pagina dove abbiamo calcolato la percentuale (supponiamo si chiami "pagina.php") ;
- Inseriamo nel codice PHP di "pagina.php", dopo il calcolo della percentuale il seguente codice:
echo "<img src=\"barra.php?barra_percent=$percent\" ></td>\n";
- Ricordate che $percent è chiaramente la variabile con la quale io ho calcolato la percentuale in ?pagina.php?.
Cosa abbiamo fatto in questo modo? Abbiamo detto a PHP di stampare un immagine (caricandola da "barra.php") dove il valore barra_percent è uguale a quello della percentuale. In questo modo il width della nostra immagine sarà direttamente proporzionale alla percentuale.
Vi faccio un esempio pratico: il width della nostra immagine è 100 (vedi $width); supponiamo che $percent sia 40; di conseguenza l'immagine sarà caricata nel seguente modo:
echo "<img src=\"barra.php?width=40\" ></td>\n";
e otterremo l'effetto tanto sperato.

