Si vous avez suffisamment d'images sur votre ordinateur et qu'elles occupent trop d'espace, il est tout à fait possible de réduire leur taille sans perdre en qualité. Cela peut également s'avérer très utile lorsque vous téléchargez des images vers un système de stockage en nuage.
JPEG et PNG sont les formats d'image les plus courants sur Internet, vous pourrez donc optimiser presque toutes les images.
Il existe un utilitaire appelé jpegoptim, un outil en ligne de commande qui peut être utilisé pour compresser les images JPEG, JPG et JFIF sans perte de qualité. L'utilitaire optimise les images en se basant sur les tables de Huffman. L'algorithme JPEG utilise la compression telle quelle, mais cette compression est réalisée avec une perte de qualité, et ici nous pouvons optimiser la taille sans changer l'image.
Pour installer l'utilitaire dans Ubuntu, Debian et les distributions basées, exécutez :
$ sudo apt install jpegoptim
Dans Fedora, Red Hat, CentOS et autres distributions basées sur ces dernières, les choses sont un peu plus compliquées, vous devrez d'abord ajouter le dépôt epel-release. Vous pouvez le faire avec une commande comme celle-ci :
$ sudo yum install epel-release
Ou :
$ sudo dnf install epel-release
Ensuite, vous pouvez installer jpegoptim à partir du dépôt que vous venez d'ajouter :
$ sudo yum install jpegoptim
Or :
$ sudo dnf install jpegoptim
Voyons maintenant comment utiliser jpegoptim. L'utilisation de l'utilitaire de compression d'image linux est très simple. Tout ce que vous avez à faire est d'exécuter le programme et de lui passer un nom de fichier. Voici la syntaxe :
$ jpegoptim optiona file_name.jpeg
Examinons les options de l'utilitaire :
-d
- spécifie le dossier dans lequel enregistrer les images finies ;-f
- optimisation forcée ;-m
- indicateur de qualité, annule la compression sans perte et définit le niveau de qualité de 0 à 100, plus il est élevé, mieux c'est ;-n
- n'effectue pas d'optimisation réelle, mais affiche seulement le résultat ;-S
- définit la taille de l'image finie, peut être spécifiée en pourcentage ou en kilo-octets ;-o
- remplace le fichier source ;-p
- sauvegarde des horodatages ;-P
- sauvegarde des droits du fichier.Voyons comment optimiser des images sous Linux avec jpegoptim. Tout d'abord, regardons la taille originale :
$ du image.jpg
Ensuite, nous effectuons l'optimisation la plus simple :
$ jpegoptim image.jpg
Puis nous regardons à nouveau la taille :
$ du image.jpg
Comme vous pouvez le voir, la compression jpg a fonctionné, et en ouvrant l'image dans n'importe quel programme graphique, il n'y aura aucune différence ou dégradation de la qualité, l'image originale et l'image finie seront identiques. À gauche, l'image optimisée, à droite, l'image originale :
Si vous le souhaitez, vous pouvez compresser l'image jusqu'à une certaine taille, mais cela ne se fera pas sans perte :
$ jpegoptim --size=250k image.jpeg
L'image sera compressée, mais la qualité se détériorera sensiblement. S'il y a beaucoup d'images, vous pouvez très facilement utiliser la compression par lot, il suffit d'aller dans le dossier contenant les images et de lancer la commande de compression en spécifiant un masque au lieu d'un fichier, par exemple :
$ cd images/
jpegoptim *.jpg
Vous pouvez également lister plusieurs images à la fois :
$ jpegoptim image1.jpg image2.jpg
Pour optimiser toutes les images d'un dossier particulier, vous pouvez utiliser la commande xargs avec find. Par exemple, compresser toutes les images du dossier actuel avec move dans le dossier ~/compressed :
$ find . -name "*.jpg" | xargs jpegoptim -d ~/compressed -p
Voilà, vous savez maintenant comment compresser des images jpg sous Linux. Ensuite, nous allons parler de la compression des images png. C'est également très simple.
Le PNG (Portable Network Graphics) est un format d'image bitmap conçu pour remplacer le format GIF imparfait en termes de compression et de reproduction des couleurs. La taille des images PNG peut varier considérablement en fonction de plusieurs facteurs tels que la profondeur des couleurs, l'entrelacement, le filtre avant compression, l'algorithme de compression utilisé, etc.
OptiPNG est un utilitaire de console qui permet d'optimiser les images PNG. A savoir compresser la taille, récupérer les métadonnées, vérifier l'intégrité, etc. Avec OptiPNG, vous pouvez compresser des fichiers sans perte de qualité, comme nous l'avons fait avec le format Jpeg.
Si vous utilisez Ubuntu, le programme se trouve dans les dépôts officiels et vous pouvez l'installer très facilement. Pour installer optipng dans Debian, Ubuntu et dérivés, tapez :
$ sudo apt install optipng
Pour Red Hat, CentOS ou Fedora, c'est exactement la même chose, juste un gestionnaire de paquets différent :
$ sudo yum install optipng
Or :
$ sudo dnf install optipng
La syntaxe de l'utilitaire est très simple. Vous pouvez l'utiliser exactement de la même manière que jpegoptim :
$ optipng ioptions file_name.png
Examinons les options de l'utilitaire :
-backup
- sauvegarde des copies des fichiers modifiés ;-dir
- dossier dans lequel écrire les fichiers ;-force
- force l'écriture du fichier sortant ; sortant
dans le fichier spécifié ;-simuler
- n'effectue aucune action, mais montre seulement le résultat ;-o
- définit le niveau de compression de 0 à 7.Essayons maintenant d'optimiser png sous linux. Voyons d'abord la taille du fichier :
$ df -h image.png
Pour effectuer une compression d'image, utilisez la commande suivante :
$ optipng image.png
Dans cet exemple, les différences ne sont pas visibles car l'image est très petite, mais à plus grande échelle, elles seront significatives :
Ici aussi, la compression png linux est sans perte, ce qui signifie que vous obtiendrez exactement la même image, mais plus petite. Vous pouvez également spécifier le niveau de compression, qui n'affecte pas la qualité de l'image, mais qui a une incidence directe sur la durée du programme. La valeur peut être comprise entre 0 et 7 et plus elle est élevée, plus la compression est forte et plus le traitement est long :
$ optipng -o 7 impge.png
Pour le traitement par lots des images, vous pouvez utiliser le même principe que pour le travail avec jpeg :
$ cd images/
$ optipng *.png
Vous savez maintenant comment se fait l'optimisation des images sous linux.