Introduzione alle librerie GD

Le librerie GD possono essere usate per creare e manipolare immagini di qualsiasi formato. L'utilita' di questa libreria e' enorme, basti pensare alla creazione di grafici o report in tempo reale, analizzando i dati da un database. Esistono poi varie librerie che appoggiandosi alla libreria GD forniscono funzioni aggiuntive e semplificate per la creazione di grafici. Le librerie GD sono supplementari nel PHP, ma e' possibile scaricare uno dei tanti progetti LAMP che lo includono gia' di base (come "XAMPP").

Esempio: di seguito uno script che apre una immagine, la ridimensiona e la restituisce in formato Jpeg.

<?php
$filename = "image.jpg";
$percent = 0.5;

// Content type
header('Content-type: image/jpeg');

// Get new dimensions
list($width, $height) = getimagesize($filename);
$new_width = $width * $percent;
$new_height = $height * $percent;

// Resample
$image_p = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

// Output
imagejpeg($image_p, null, 100);
?>

In questo esempio, ho usato quattro funzioni fondamentali:

resource imagecreatetruecolor ( int $width , int $height )
resource imagecreatefromjpeg ( string $filename )
bool imagecopyresampled ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h , int $src_w , int $src_h ) bool imagejpeg ( resource $image [, string $filename [, int $quality ]] )


imagecreatetruecolor() restituisce un foglio da disegno di colore nero su cui disegnare.
imagecreatefromjpeg() restituisce un immagine leggendo da un file dato.
imagecopyresampled() copia una porzione rettangolare di una immagine ad un'altra immagine, ridimensionando senza grosse perdite di qualita'.
imagejpeg() crea una immage Jpeg.