Suite à mes récentes et dernières lectures de "Performance Web" d'Eric Daspet, où j'y découvrais l'intérêt de compresser puis d'optimiser les images JPEG, et PNG, j'eus l'idée de me créer un script Bash, donc sous GNU/Linux, afin de me faciliter la vie dans cette optique.
Ce script, bien sûr, je vous le partage, et partez du principe qu'il est licencié sous GNU/GPL v3, même si aucune mention de copyright n'apparaît !
Présentation du script "Convert Image"
Tel que vous vous en doutez ce script permet de compresser des images JPEG, et PNG puis de les optimiser ; il est aussi possible de transformer des images JPEG en images PNG, néanmoins de par la prise de poids conséquente, il est fortement recommandé de ne pas utiliser cette option dans un contexte de production web. Cette option a été rajoutée plus pour le propos de l'exercice de style !
De fait, les deux options principales sont :
- - jpg2jpg pour la compression d'image JPEG et leur optimisation,
- - png2png pour les images PNG,
Le script s'utilise très simplement, c'est le but d'ailleurs :
./convert_image /nom_de_repertoire_ou_se_situe_les_images/
option
Concernant les outils logiciels nécessaires, le script utilise l'outil
'gvfs-info', dont le propos est d'assurer la détection du type mime de l'image,
et de fait d'utiliser les bonnes fonctions nécessaires, selon l'option choisie,
pour le bon fonctionnement du script.
Le script utilise un petit test de vérification concernant qu'il y a bien deux
arguments retournés, et une fonction vérifiant que le premier est bien un
répertoire, et le second une des options attendues.
Codes Sources
De plus amples informations sont restituées sur mon site "Mémoire Grise Libérée" afin de présenter principalement le code source du script, mais aussi de donner des explications certes quant aux options utilisables mais aussi aux outils logiciels nécessaires.
Vous avez accès au téléchargement du script ; donnez lui ensuite les droits d'exécution nécessaire.
Il est certainement possible d'améliorer le script, si c'est le cas,
n'hésitez pas à me le signaler 