La GD Graphics Library

Informazioni utiliLa GD Graphics Library è una libreria di codice open source per la manipolazione dinamica di immagini, scritta principalmente da Thomas Boutell. Il progetto è attualmente guidato da Pierre Joye (uno degli sviluppatori più conosciuti per il PHP).
E' stata scritta nel linguaggio C, ma supporta, tramite wrapper, anche altri linguaggi, in particolare il PHP e il Perl.
Può generare immagini di tipo diverso (in particolare nei formati JPEG,GIF,PNG e BMP), immagini composte da linee, archi, diagrammi, grafici, miniature ed anche testo (supporta infatti i font). Caratteristica molto importante è che la generazione delle immagini avviene in tempi molto ridotti, praticamente on the fly.
Con l'arrivo della versione 2.0 ci sono state importanti novità, infatti sono stati aggiunti:
- il colore per immagini truecolor e con canale alfa;
- il resampling dell'immagini.
La versione attuale (purtroppo risalente al novembre 2007) è la 2.0.36RC1 (cioè la prima release candidate), altrimenti abbiamo la 2.0.35 del giugno del medesimo anno.

Il sito di riferimento è questo: http://www.libgd.org/,dove troviamo la documentazione, le FAQ e i download della libreria.
Viene utilizzata, per la maggior parte, nella creazione di siti web e dentro i moduli dei diversi CMS.

Una versione modificata di GD Library è presente in PHP a partire dalla versione 4.3 che include funzioni aggiuntive.
A questo link invece troviamo le funzioni utilizzate in PHP sia con la GD library sia senza.
Se avete una buona infarinatura di PHP non vi risulterà difficile usarle.
Per esempio è molto banale creare un codice che aggiunge su un'immagine (nel nostro caso png) una scritta.
Basta scrivere uno script php e del codice html come questi:
e poi usarli all'interno delle pagine web, come è possibile vedere in figura.
Il codice è semplice da capire: prende dall'url il testo dato dalla variabile text, carica l'immagine (nel nostro caso in formato png, che viene dichiarato anche nel content-type), imposta la posizione del testo nell'immagine e il colore e crea la nuova immagine. Ancora più facile è capire come inserirlo in una pagina web: basta usare i classici tag html e uno script php con il tag img che richiama l'altro script.

Se volete provare in locale questo codice e usate per esempio EasyPhp allora basta caricare dentro la cartella www del programma i due file, creare una cartella (che nel codice di esempio è stata chiamata images) e dentro la quale inserire il file png.
Basta poi richiamare il file dall'url e otteniamo quello che si può vedere nell'immagine.

Da notare bene: in EasyPhp è necessario attivare questa libreria. Per farlo basta andare in configurazione, scegliere Estensioni PHP (vedi figura) e da lì selezionare php_gd2.

Facciamo un altro esempio e scriviamo il seguente codice:

Questo codice produce, dato un testo, un banner con la relativa scritta.
E' facile capire cosa fanno le singole funzioni: impostano dimensioni e colori sia dello sfondo che del testo, salva l'immagine nel formato desiderato (nel nostro caso la funzione imagejpeg) e con il percorso che vogliamo, infine la restituisce nel browser tramite il tag img.
In figura vediamo il risultato che otteniamo.

In questo modo è facile usare la libreria per le più svariate cose, per esempio per un servizio che trasforma i testi immessi in immagini (per esempio un e-mail icon generator) oppure per creare dei filtri captcha.

Solitamente, per utilizzarla sul web, deve essere fornita dal servizio di hosting. Se non è attiva, basta provare a chiedere all'assistenza per la sua attivazione.
Se invece si possiede un proprio server oppure si vuole fare le prove in locale, la libreria può essere attivata lanciando questi comandi :
sudo apt-get install php5-GD (se piattaforma Debian Based, con "sudo" solo se è Ubuntu);
yum install php-gd (se piattaforma RedHat Based, come Fedora).

Per controllare se è già installata basta usare il classico script php:
<?php echo phpinfo(); ?>

Numerosi componenti di Joomla richiedono l'uso della GD Graphics Library.
Vediamo qui alcuni esempi:
  • Security Images: componente nativo sia per la versione 1.0 sia per la 1.5, utilizza la GD Graphics Library per creare 5 tipi di captchas configurabili;
  • Phoca Gallery: questa galleria di immagini richiede la GD Graphics Library, che viene utilizzata in particolar modo per creare i tre tipi di thumbnails per l'anteprima delle immagini;
  • EasyGallery, componente che richiede la presenza della GD Graphics Library per la creazione delle thumbnail. Se è attiva nel nostro server dobbiamo generare le miniature manualmente prima di utilizzare la galleria. E' necessario aggiungere una cartella per le  thumbnails per ogni album. In questa cartella è necessario inserire, per ogni immagine, un file miniatura. Se l'immagine originale si chiama img.jpg la miniatura dovrà chiamarsi tn_img.jpg e messa in tale cartella. Esistono molti programmi e siti che forniscono la possibilità di creare in modo automatico delle miniature, per esempio il programma Irfanview.
In generale la maggior parte delle attuali gallerie e componenti per il captcha o per altro richiedono la presenza di questa libreria.
Molto spesso tra le impostazioni è possibile rilevare se è installata oppure no, come nella zOOm Media Gallery (vedi immagine)

La libreria GD Graphics Library è molto utile per la costruzione dei nostri siti e viene utilizzata in molti componenti. Studiarla non è difficile e bastano anche poche conoscenze di php e si possono ottenere degli effetti e delle immagini veramente interessanti.




CommentaCommenta questo articolo sul forum