JoomlaStaff
Home      Scambio Link    Web marketing     Php       
Cerca il tuo dominio qui!
IMMAGINI DINAMICHE: LE ESTENSIONI GD IN PHP
Le prime versioni del web non prevedevano altro che uno scambio di informazioni puramente testuali e neppure si sarebbe potuto immaginare cosa questo mezzo avrebbe potuto garantire in futuro.
Oggi le pagine web sono dense di contenuti multimediali quali immagini, filmati, file sonori, applicazioni flash, documenti Pdf, doc, xls e abbiamo già visto come il PHP possa essere adoperato per la creazione o la modifica in tempo reale di questi contenuti (vedere ad esempio le estensioni Filmati Flash e PHP con Ming e PDF con Php (1)).
Attraverso le estensioni GD è possibile creare, modificare, ridimensionare anche file di tipo immagine.

Con questo articolo cercherò di entrare più nel dettaglio di quello che è possibile fare, dato che una prima infarinatura è già stata Disegnare con le librerie GD e PHP.



Una breve storia

La libreria scritta in C è stata sviluppata da una società privata e rilasciata come prodotto open source a dimostrazione della bontà di questo tipo di software.

Ad oggi rappresenta praticamente l'unica soluzione utilizzabile quando si tratta di script PHP per la creazione di immagini al volo o per una loro veloce modifica.

La versione 1.x prevedeva inizialmente il supporto per i formati Gif e Jpeg, a cui si sono poi aggiunti i formati Png e Wbmp.

Per problemi legali relativi alla licenza per il formato Gif il supporto per quest'ultimo venne tolto a partire dalla versione 1.6 e reintrodotto successivamente alla scadenza del brevetto (per questo motivo venne migliorato il supporto per il formato PNG in modo che sostituisse le immagini Gif).

Con la versione 2 le GD hanno fatto passi da giganti introducendo il supporto per il truecolor, per il canale alfa, per una più vasta gamma di caratteri (con il supporto per Freetype 2) e successivamente reintroducendo il supporto per il formato GIF (versione 2.0.28).

Lo sviluppo continua costantemente e vengono rilasciate nuove funzionalità ad ogni versione; non è detto però che le funzionalità siano accessibili da PHP nel momento stesso in cui vengono implementate.

Da qualche versione di PHP questa libreria viene distribuita direttamente con il codice sorgente dell'interprete, per cui è possibile considerarla come una presenza praticamente obbligata su server con supporto per questo linguaggio.



Formati supportati
I formati principali supportati dalla libreria GD sono GIF, JPEG e PNG, vediamo come vengono gestiti.



Gif Mime-Type: image/gif Principali funzioni: imagecreatefromgif(), imagegif(), imagecolortransparent() Questo tipo di immagini presuppone una limitazione nel numero di colori utilizzato attraverso la creazione di palette con un massimo di 256. Esistono due varianti: GIF87a, la prima versione e GIF89a una successiva rivista e corretta con aggiunte interessanti quali l'interlacciamento, la trasparenza e l'animazione.

Con le GD implementate da PHP è possibile soltanto utilizzare le prime due caratteristiche, cioè la memorizzazione delle immagini in modo che prima ne venga mostrata una versione in scarsa qualità e la possibilità di impostare un colore come trasparente.

Non è invece possibile creare immagini animate per il momento, anche se le GD lo permettono da poche versioni ed è quindi probabile che il supporto venga esteso anche al PHP.

Per i problemi di licenza accennati in precedenza è possibile trovarsi di fronte ad una versione che non permetta di maneggiare questo formato.

È consigliabile quindi evitare di utilizzarlo nella scrittura di applicazioni portabili, e, quando possibile, preferirgli PNG.



Jpeg Mime-Type: image/jpeg, image/jpe

Principali funzioni:

imagecreatefromjpeg(), imagejpeg(), imageinterlace()



Questo formato compresso consente di salvare immagini di tipo fotografico, quindi con milioni di colori, in uno spazio ben più ridotto di quello occupato dall'immagine non compressa. Come per le GIF è stato introdotto il supporto per l'interlacciamento dell'immagine, cioè è possibile che l'immagine venga caricata a poco a poco e vengano mostrate versioni sempre meno approssimative della stessa.

Questo avviene con browser basati sul motore Gecko (Mozilla, Firefox, etc.) mentre Internet Explorer non è in grado di visualizzarle correttamente e si limita a mostrare l'immagine soltanto quando è stata caricata del tutto.

Paradossalmente quindi risulta che il metodo migliore per dare all'utente impaziente prova dell'effettiva esistenza dell'immagine sia quello di lasciarla non interlacciata e fare quindi in modo che il browser la mostri riga per riga mano a mano che viene caricata.



Png Mime-Type: image/png Principali funzioni: imagecreatefrompng(), imagepng(), imagesavealpha(), imagealphablending()

Questo formato risulta di comodo utilizzo dato che è in grado di lavorare in due modalità di cui una molto vicina al funzionamento delle GIF e l'altra molto vicina al funzionamento delle JPEG. Per questo motivo è il tipo di immagine consigliato in fase di utilizzo.

Alcuni browser datati potrebbero non essere però in grado di visualizzarle, mentre alcuni browser odierni tipo Internet Explorer potrebbero avere avere alcuni problemi con determinate caratteristiche (salvo ricorrere ad alcuni workaround), per esempio con l'Alpha channel che consentirebbe una gestione più flessibile della trasparenza.
  Siti partners :    Article marketing