Drupal e image optimizer

 

Se vi capita di utilizzare YSlow o PageSpeed per analizzare le performance del vostro front end, può capitare di vedere una voce che vi indica che le vostre immagini non sono ottimizzate. Cosa vuol dire, ma sopratutto, come possiamo ottimizzarle per ottenere dei risultati migliori? Questo è quello di cui parleremo ora, in particolare vedremo come integrare queste ottimizzazioni in Drupal.

Con ottimizzazione delle immagini intendiamo la rimozione da queste di tutte quelle informazioni che non ne migliorano la qualità, aumentando esclusivamente il peso dell'immagine generata. Se vi capita di lavorare con immagini provenienti dall'editoria può capitare che alcune immagini, anche se di dimensioni ridicole (meno di un centinaio di pixel per lato) possano arrivare a pesare alcuni megabyte. Ovviamente questa è una cosa da correggere nel più breve tempo possibile.

I dati che possiamo trovare all'interno di queste informazioni inutili vanno dai metadati che specificano le dimensioni delle immagini, alle informazioni su canali alpha che non vengono utilizzate, ma anche informazioni relative a thumbnail che vengono integrate come informazioni aggiuntive. Vi sono diversi articoli in merito che illustrano come sia possibile andare ad ottimizzare delle immagini senza diminuirne la qualità, nel nostro caso non ci addentreremo in trattazioni accademiche, ma vediamo come utilizzare dei tool già pronti che si occupano proprio di effettuare l'ottimizzazione delle immagini.

Differenzieremo le immagini in PNG e JPG, in quanto le tecniche di ottimizzazioni sono differenti e dipendono proprio dal formato che queste immagini hanno.

Installazione dei tool

Partiamo con l'installazione dei tool necessari. Nel caso di distribuzioni linux basate su Debian è sufficiente procedere con:

sudo apt-get install libjpeg-progs advancecomp optipng

per installare rispettivamente:

  • jpegtran
  • advpng e advdef
  • optipng

mentre l'installazione di jfifremove è leggermente più complessa e richiede la compilazione a partire dai sorgenti. Questi fanno uso solo delle libreire standard per l'IO pertanto non è necessario installare il compilatore sui server: è sufficiente compilarlo in locale e trasferire il binario in remoto. La procedura di compilazione è la seguente:

wget http://lyncd.com/files/imgopt/jfifremove.c
gcc -o jfifremove jfifremove.c
sudo mv jfifremove /usr/bin/jfifremove

L'ultimo comando serve a posizionare il binario in un punto incluso nella variabile $PATH in modo da poterlo richiamare direttamente.

L'utilizzo

Una volta effettuata l'installazione possiamo utilizzare i tool per l'ottimizzazione della PNG semplicemente lanciando i comandi:

optipng -o3 /path/del/file.png
advpng -z -4 /path/del/file.png
advdef -z -4 /path/del/file.png

Per quanto riguarda i file JPEG possiamo utilizzare i tool appena installati ricorrendo a:

jpegtran -optimize < /path/del/file/da/ottimizzare.jpg > /path/del/file/ottimizzato.jpg
jfifremove < /path/del/file/ottimizzato.jpg > /path/del/file/ottimizzato2.jpg

Questo ovviamente deve essere eseguito per ogni file che abbiamo all'interno del nostro sito.

Integrazione con Drupal

L'integrazione con Drupal è abbastanza semplice. È sufficiente installare il modulo imageapi_optimize. Una volta installato e attivato il modulo, procediamo in Admin » Settings » ImageAPI, impostiamo come elaboratore di immagini ImageAPI Optimize e quindi andiamo nella scheda Settings. A questo punto scegliamo a quale elaboratore far effettuare la conversione delle immagini vera e propria; io vi consiglio caldamente imagemagick per la qualità superiore, ma alcune impostazione di imagecache non funzioneranno, pertanto dovrete scegliere in base alle vostre esigenze.

Una volta attivato e configurato il modulo, procedete indicando i path in cui si trovano gli eseguibili precedentemente installati (dovrebbe essere /usr/bin/NOME_TOOL) e d'ora in poi le immagini generate risulteranno essere ottimizzate.

Altri contenuti che potrebbero interessarti

  • Drupal è uno dei migliori CMS (la versione 4.7 è giunta seconda al contest internazionale, subito dopo Joomla, ma con la versione 5 probabilmente si avrà il balzo al primo posto!) in circolazione per la realizzazione di siti nato nel 2001 e giunto ormai alla sua quinta versione...
  • Esempio di vista generata dall'integrazione del nostro modulo con views
    Alzi la mano chi non ha mai usato views. Alzi la mano che l'ha mai usato. Ok, non proprio tutti ma buona parte di voi ha alzato la mano, questo perchè è sicuramente uno strumento potentissimo per la visualizzazione delle informazioni, quindi è fondamentale (o comunque molto utile) andare ad...
  • Interfaccia di esempio per la selezione tramite autocompletamento in cascata
    Come spesso capita si utilizzano select per andare a far effettuare delle scelte agli utenti, e come abbiamo visto precentemente è possibile usare le funzionalità ajax per fare in modo che delle select secondarie varino in funzione della prima scelta. Cosa succede, invece, quando si hanno centinaia...
  • La volta scorsa, nel parlare di ottimizzazione del frontend di siti generici (e Drupal in particolare) avevamo affrontato alcune delle problematiche principali, tra cui appunto la generazione di sottodomini per lo smistamento degli asset statici [1], così da parallelizzare il più possibile il...

Commenti

Ritratto di smiro

grazie!

ottime info Mavimo, grazie!
Peccato solo che ho trovato le tue descrizioni dopo aver finito il processo cercando le informazioni in mille posti...
devo ricordarmi di tradurle e aggiungerle http://drupal.org/node/773342 potrebbe servire ad altri come me.
Ciao,
-miro

Ritratto di mavimo

Figurati!!

..è sempre un piacere dare una mano (nel mio piccolo)!!

Invia nuovo commento





  • Elementi HTML permessi: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img> <h2> <h3> <h4> <table> <thead> <tbody> <tr> <th> <td>
  • You may post code using <code>...</code> (generic) or <?php ... ?> (highlighted PHP) tags.
  • Linee e paragrafi vanno a capo automaticamente.
  • Indirizzi web o e-mail vengono trasformati in link automaticamente

Maggiori informazioni sulle opzioni di formattazione.



Condividi contenuti