Optimisation des images générées par eZ Publish
Google Page Speed 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 (site fermé depuis), j'ai remarqué que les miniatures des photos générées par eZ Publish via ImageMagick 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 d'image 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, 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.