• Votre panier est vide.

  • LOGIN

Comment compresser et redimensionner des images en masse sous Linux


TL;DR

Si vous ne souhaitez pas lire l’article, exécutez ce pack de commandes dans le dossier contenant vos images :

sudo apt-get update && sudo apt-get install imagemagick optipng jpegoptim && find . -name '*.jpg' -exec mogrify -resize 2500x2500\> {} \; -exec jpegoptim --strip-all --max=80 {} \; && find . -name '*.jpeg' -exec mogrify -resize 2500x2500\> {} \; -exec jpegoptim --strip-all --max=80 {} \; && find . -name '*.png' -exec mogrify -resize 2500x2500\> {} \; -exec optipng -strip all -o2 {} \;

Réduire en masse la taille de toutes les images jpg/jpeg/png d’un dossier

J’ai récemment pris le temps de nettoyer et trier les fichiers de mon ordinateur et c’est à ce moment précis que je me suis rendu compte à quel point les images pouvaient être lourdes. On en arrive parfois à stocker des packs d’images qui ensembles, dépassent largement la taille d’un film.

L’une des premières raisons à cela est l’augmentation de la qualité et de la résolution des appareils photo, qu’ils soient mobiles ou non. Quand aujourd’hui vous pouvez vous procurer pour une centaine d’euros un Xiaomi à 48mpx qui produit des images de plusieurs mégaoctets à l’unité, on comprend vite pourquoi notre téléphone ou carte SD sature en stockage.

Étant sous Linux, je me suis donc penché sur les paquets les plus populaires et relativement performants afin de compresser n’importe quelle image, qu’elle soit au format jpg, jpeg ou png, mais également mettre une résolution maximale de 2500×2500.

 

Installer les paquets d’optimisation d’image imagemagick, jpegoptim et optipng

Afin de parvenir à notre but qui est de diviser le poids de nos images, nous avons besoin d’installer trois paquets :

  1. Imagick qui est nécessaire à jpegoptim
  2. jpegoptim qui optimise les fichiers jpeg et jpg
  3. optipng qui optimise les fichiers png

 

Pour ce faire, exécutez les commandes suivantes :

sudo apt-get update
sudo apt-get install imagemagick optipng jpegoptim

Rien de plus n’est nécessaire.

 

Comment utiliser jpegoptim et optipng

Je ne vais pas y aller par quatre-chemins, voici directement un exemple concret d’utilisation :

find . -name '*.jpg' -exec mogrify -resize 2048x2048\> {} \; -exec jpegoptim --strip-all --max=80 {} \;
find . -name '*.jpeg' -exec mogrify -resize 2048x2048\> {} \; -exec jpegoptim --strip-all --max=80 {} \;
find . -name '*.png' -exec mogrify -resize 2048x2048\> {} \; -exec optipng -strip all -o2 {} \;

Chaque ligne a pour but de :

  1. Chercher tous les fichiers ayant pour extension soit « jpg », « jpeg » ou « png »
  2. Leur mettre une taille maximale de 2048×2048, notez le « /> » après cette résolution, cela signifie qu’il ne faut pas agrandir une image ou la déformer : le ratio sera respecté et seules les images plus grandes seront retaillées
  3. Exécuter une optimisation soit via jpegoptim, soit optipng tout en précisant de retirer toutes les informations inutiles (EXIF par exemple) et conserver une qualité de 80% afin de réduire davantage la taille

 

Et c’est tout. À noter que « mogrify » signifie optimiser l’image directement (écraser l’originale) plutôt que d’en faire une copie et d’avoir à trier par la suite.

Si vous ne souhaitez pas avoir à vérifier quand chaque commande a été effectuée afin de lancer la suivante, vous pouvez combiner les trois en une :

find . -name '*.jpg' -exec mogrify -resize 2500x2500\> {} \; -exec jpegoptim --strip-all --max=80 {} \; && find . -name '*.jpeg' -exec mogrify -resize  2500x2500\> {} \; -exec jpegoptim --strip-all --max=80 {} \; && find . -name '*.png' -exec mogrify -resize  2500x2500\> {} \; -exec optipng -strip all -o2 {} \;

À noter que optipng est le paquet qui semble (au premier abord) le moins performant. Même avec un taux de compression plus élevé (le paramètre -o), celui-ci ne réduit pas la taille autant que ne le fait jpegoptim, en plus d’être beaucoup plus long à l’exécution.

Voir aussi :

août 15, 2021

Poster un commentaire

Please Login to comment

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Culte du code | 2015-2022  (Vecteurs par Freepik, Parallax par fullvector)