Optimisation des images générées par eZ Publish

Google Page Speed (la presque copie conforme de YSlow) est sorti il y a quelques jours. Ces deux outils permettent de vérifier différents critères ayant un impact sur le temps de chargement ressenti par l'utilisateur. En utilisant Google Page Speed sur ma dernière création, Bioutifoul Photos, j'ai remarqué que les miniatures des photos générées par eZ PublishviaImageMagick n'étaient pas optimisées, en effet elles contiennent toutes les informations EXIF de l'image originale ce qui est rarement utile (a priori GD ne sait pas conserver les informations EXIF donc le problème ne se pose pas).

Pour remédier à cela, il est possible de configurer un filtre spécifique (par exemple nommé optimize) qui va rajouter l'option -strip à convert lors de la création des variations pour supprimer un maximum de choses dans l'image puis à rajouter ce filtre dans les filtres utilisés pour créer une variation donnée. Cette opération est faisable en écrivant les lignes suivantes dans settings/override/image.ini.append.php :

[ImageMagick]
IsEnabled=true
ExecutablePath=/usr/bin
Executable=convert
 
Filters[]=optimize=-strip
 
[mini]
Filters[]
Filters[]=geometry/scalewidthdownonly=200
Filters[]=optimize

Dans cet exemple, la seules les images générées en format mini seront optimisées. Une autre solution plus globale consiste à ajouter l'option -strip pour toutes les variations en utilisant le paramètre PreParameters dans le même fichier de configuration.

Dans les deux cas, pour que les images existantes soient régénérées, il faut lancer la commande suivante :

$ php bin/php/ezcache.php --clear-tag=image

Attention, sur un site avec beaucoup d'images et un peu d'audience, la régénération des variations peut être extrêmement gourmande en ressources.

» Commentaires

- Utiliser pngcrush aussi (#67830) par Jérôme le 14 juin 2009 à 06:07
Bonjour Damien,

Pour les png, tu peux aussi faire un événement de workflow post publish et les passer à travers pngcrush [1] pour réduire leur poids original.

Si l'original est déjà optimisé créer les variations d'images n'en sera que plus efficace.

:)

1. http://en.wikipedia.org/wiki/Pngcrush
- et le gain au final ? (#67831) par Nicolas Steinmetz le 15 juin 2009 à 09:41
De quel ordre est-il ? Est-il sensible d'un point de vue utilisateur du site ? Ou bien est-ce juste quelques ko gagnés de manière marginale ?
- Gain variable (#67832) par Damien le 15 juin 2009 à 09:56
@Nicolas : le gain est très variable d'une photo à une autre. Sur l'exemple que je donne dans le billet, j'ai gagné entre 5 et 10ko par image soit environ 50ko sur la page. J'ai pas encore fait la modification sur pwet.fr; si tu vas sur http://pwet.fr/photos et tu lances Google Page Speed, tu verras que le gain varie de 5ko à 70ko par miniatures de 160px de hauteur. Sur la totalité de la page, il y a près de 300ko à gagner, ce n'est pas rien !
- pngcrush sans workflow? (#67833) par gaetano le 15 juin 2009 à 10:10
@jerome: ce serait encore plus interessant, je crois, d'activer pngcrush sans workflow, mais via un simple shell script à appeler à la place de convert.
Le script devrait:
- appeler convert avec tous les params recus
- si le dernier param est --pngcrush, et le format de l'image, appeler pngcrush sur le resultat

Des volontaires pour le faire?
- Très intéressant (#67834) par truffo le 15 juin 2009 à 22:55
En plus, j'ai pas mal de problème sous eZ avec les données EXIF. Les images deviennent illisible sur IE. Ca va peut être solutionner mon problème.
- Merci (#67841) par Nicolas Steinmetz le 19 juin 2009 à 09:42
@Damien : merci pour ce retour - c'est sur que 300 Ko ça commence à faire son effet :)

Flux RSS des billets

Flux RSS des billets

Rechercher sur pwet.fr

À retenir

Derniers commentaires

Archives

Nuage de tags

Bioutifoul photos

Quelques liens

Licence d'utilisation

Contenu sous Licence Creative Commons By-Sa

Sauf mentions spécifiques, les billets et les photos publiés sur ce site sont placés sous la licence Creative Commons by-sa.

Pour toute utilisation dépassant le cadre de cette licence, merci de me contacter par e-mail.

Login