Programmazione Web » Php » Creare immagini al volo con GD Library di Php
Creare immagini al volo con GD Library di Php
Difficoltà:
Scritto da Leo Di Donato
Sito Web: ![]()
Questo tutorial è stato letto 1079 volte
Forse pochi sono al corrente dell'esistenza di uno strumento grafico chiamato GD Library che ci permette di creare immagini "al volo" direttamente con PHP. Per riuscire nell'operazione è necessario che questa libreria sia già compresa nella versione installata di PHP. In caso contrario sarà possibile comunque procurarsela e installarla. In questa lezione vedremo le seguenti funzioni relative a GD Library:
- imagecreate();
- imagecolorallocate();
- imagefilledrectangle();
- imagerectangle();
- header();
- imagepng();
- imagedestroy();
Vi insegnerò quindi come creare un'immagine grazie a queste funzioni PHP e a GD Library... Ecco il codice per crearla:
<?php
$height = 15;
$width = 100; // E' consigliato se dobbiamo creare un'immagine che rappresenti una percentuale
$immagine = imagecreate($width, $height);
$bg = imagecolorallocate($immagine, 255, 255, 255); // bianco
$barra = imagecolorallocate($immagine, 0, 255, 0);
imagefilledrectangle($immagine, 0, 0, $width, $height, $barra);
imagerectangle($immagine, 0, 0, $width, $height, $bg);
header("Content-type: image/png");
imagepng($immagine);
imagedestroy($immagine);
?>
Commentiamo il codice:
- Attraverso la funzione imagecreate() settiamo un blocco di memoria per l'immagine;
- Attraverso imagecolorallocate() definiamo i colori di questa immagine: avremo bisogno di 2 colori, uno per lo sfondo ($bg) e uno per la barra ($barra);
- Con la funzione imagefilledrectangle() dipingiamo nell'immagine un rettangolo riempito che mostrerà la percentuale;
- Creiamo un altro rettangolo con imagerectangle() che, chiaramente, sarà per lo sfondo.
A questo punto del codice l'immagine è ormai ben definita in memoria; non ci rimane che copiarla nel browser o in un file.
- Con la funzione header() definiamo il formato dell'immagine, in questo caso .png (GD Library supporta anche i formati gif, jpeg, tiff, wbmp) e la inviamo al browser. Ricordatevi che qualora manderemo questa immagine sul browser la funzione header() dovrà necessariamente occupare la prima linea di questo codice;
- Infine con la funzione imagepng() mandiamo sul browser una copia di questa immagine;
- Con imagedestroy(), distruggiamo l'immagine, dato che è stata ormai inviata.

