Very bad link!

La compresion a du bon

MOZJPEG

Réduire la taille d'une image, 26 avril 2020

Le site sur lequel vous vous trouvez utilise Mozjpeg pour optimiser la taille de ses images et ainsi économiser le transfert de donnée accélérant ainsi l'affichage de la page. Par exemple chaque image de l'accueil est volontairement maintenu au maximum à 20Ko.

Voyons maintenant comment s'y prendre.

La méthode démontrée ici utilise GNU/linux mais vous pouvez aussi utiliser des versions en ligne prêtes à l'emploi.
Je considère a partir d'ici que votre système contient de quoi compiler le code, donc au moins 'nasm' et 'cmake' ainsi que 'cmake-curse-gui'.

Il va tout d'abord nous falloir récupérer le code de mozjpeg. Ouvrons un terminal et passons les commandes suivantes:
git clone https://github.com/mozilla/mozjpeg.git
cd mozjpeg
cmake .

Si une erreur se produit c'est très certainement car le format PNG n'est pas supporté, on le désactivera avec:
ccmake .
Qu'on valide avec 'c' puis 'g'. on peut maintenant lancer la compilation.
cmake .
make -j4

Si tout s'est bien passé on obitent le message suivant:
[100%] Built target tjbench-static

Il ne reste plus qu'à installer Mozjpeg.
sudo make install

Passons à l'utilisation.

Le programe se lance avec la commande (pour obtenir l'aide):
/opt/mozjpeg/bin/cjpeg -h

Il ne nous faut plus qu'une image JPEG pour tester notre optimisation. Par exemple une photographie de 4288 pixels par 2848 pixels totalisant 6,3Mo.

J'invoque alors mozjpeg avec la commande:
/opt/mozjpeg/bin/cjpeg -outfile Graffiti-below-bridge-in-Essen2.jpg Graffiti-below-bridge-in-Essen.jpg
Ce qui me permet d'obtenir une image de seulement 1,4Mo.
Mais on peut pousser encore un peu plus loin avec les options du programme. /opt/mozjpeg/bin/cjpeg -dc-scan-opt 2 -quant-table 3 -outfile Graffiti-below-bridge-in-Essen3.jpg Graffiti-below-bridge-in-Essen.jpg
On arrive maintenant à une image de 1,2Mo.

Voici un zoom sur le resultat, en haut l'original et en bas la version prenant presque trois fois moins de place.

comparaison

Notez que la résolution de l'image n'a pas été changée, c'est un paramètre pour toute image qui influencera le plus la taille du fichier. Pour une page web une image de 4288 pixels par 2848 pixels (on parle alors de 12 megapixels) n'est pas nécessaire, le simple megapixel (soit 1024 pixels par 1024 pixels) est plus que suffisant. Pour l'échantillon précédent cela se traduit par une image de 1024 pixels par 680 pixels pour 897Ko. En utilisant la commande la plus optmisées vue plus haut on descend alors à 98,6Ko.


Sources