La capacité de résolution d'image des appareils de capture de photos d'aujourd'hui comme les smartphones et les appareils photo numériques augmente de jour en jour. La vraie affaire survient lorsque nous devons partager ces images, les télécharger sur une installation cloud ou même les enregistrer sur un appareil avec un stockage restreint. Les graphistes doivent également faire face au même problème, mais ils sont bien équipés avec des outils capables de compresser les images afin qu'elles puissent être facilement partagées avec les parties prenantes.
Pour Ubuntu, il existe de nombreux utilitaires graphiques qui vous permettraient d'optimiser et de compresser vos jpegs, mais nous discuterons ici d'un outil de ligne de commande appelé Jpegoptim. Ceci est particulièrement utile pour les connaisseurs de terminaux qui aiment effectuer leurs tâches en utilisant un minimum de ressources système. Jpegoptim peut vous aider à compresser vos fichiers jpegs, jpg et jfif avec et sans perte de qualité, selon ce que vous recherchez.
Dans cet article, nous décrirons comment vous pouvez installer l'utilitaire de ligne de commande Jpegoptim sur Ubuntu. Nous expliquerons également différentes manières d'utiliser cette application pour optimiser et compresser vos fichiers image jpeg. L'article vous permettra également d'écrire et d'exécuter un script bash qui automatisera le processus de compression de tous les jpegs situés dans un seul répertoire.
Nous avons exécuté les commandes et procédures mentionnées dans cet article sur un système Ubuntu 18.04 LTS.
Installer Jpegoptim sur Ubuntu
Jpegoptim est facilement disponible via le référentiel officiel Ubuntu et peut être facilement installé via la ligne de commande à l'aide de la commande apt-get.
Ouvrez votre application Terminal soit via le système de recherche du lanceur d'applications, soit via le raccourci Ctrl+Alt+T.
L'étape suivante consiste à mettre à jour l'index du référentiel de votre système via la commande suivante :
$ sudo apt-get update
Cela vous aide à installer la dernière version disponible d'un logiciel à partir d'Internet. Veuillez noter que seul un utilisateur autorisé peut ajouter, supprimer et configurer des logiciels sur Ubuntu.
Vous êtes maintenant prêt à installer Image Jpegoptim; vous pouvez le faire en exécutant la commande suivante en tant que sudo :
$ sudo apt-get install jpegoptim
Le système peut vous demander le mot de passe pour sudo et vous fournir également une option Y/n pour continuer l'installation. Entrez Y puis appuyez sur Entrée ; le logiciel sera installé sur votre système. Le processus peut cependant prendre un certain temps en fonction de votre vitesse Internet.
Vous pouvez vérifier le numéro de version de l'application, et également vérifier qu'elle est bien installée sur votre système, grâce à la commande suivante :
$ jpegoptim --version
Utilisation de Jpegoptim pour la compression d'image
Explorons maintenant la puissance de Jpegoptim à travers les manières suivantes de l'utiliser :
Compressez sans perte une seule image
Si vous souhaitez compresser une seule image sans vouloir faire de compromis sur la qualité, utilisez la commande suivante :
$ jpegoptim nom_image.jpg
Exemple :
$ jpegoptim sample.jpg
Remarque : N'oubliez pas que l'outil écrase l'image existante, c'est donc une bonne idée d'enregistrer l'image d'origine ailleurs.
Si vous souhaitez que l'image soit encore plus compressée, vous pouvez exécuter à nouveau la même commande. Cependant, Jpegoptim commencera à ignorer la compression si elle atteint la limite où vous avez une qualité d'image sans perte avec le plus de compression.
Voici à quoi ressemblerait la sortie dans une telle situation :
Compresser une image dans un autre dossier
Si vous craignez de perdre votre image d'origine car Jpegoptim l'écrasera, vous pouvez demander à l'outil d'enregistrer l'image compressée dans un autre dossier.
Commencez par créer un dossier dans lequel vous souhaitez enregistrer les images compressées. Si vous souhaitez qu'ils soient enregistrés dans un dossier déjà existant, vous n'avez pas besoin d'en créer un nouveau. Vous pouvez ensuite utiliser la syntaxe de commande suivante pour effectuer la compression :
$ jpegoptim -d ./[dossier-destination] -p [nom_image].jpg
Par exemple :
$ jpegoptim -d ./compressed -p sample.jpg
La commande ci-dessus va compresser et enregistrer mon fichier sample.jpg dans un dossier déjà existant nommé "compressed".
Vérifier la compression potentielle
Si vous voulez voir, à l'avance, combien une image est capable d'être compressée, vous pouvez simuler la compression d'image via Jpegoptim. La commande suivante ne compressera pas réellement l'image, elle vous indiquera simplement combien l'image sera compressée si jamais vous essayez de la compresser avec Jpegoptim.
L'exemple suivant expliquera plus en détail le processus :
J'ai une image jpg nommée sample.jpg. J'imprimerai d'abord sa taille via la commande du comme suit :
$ du sample.jpg
Ensuite, j'utiliserai le drapeau -n avec la commande jpegoptim pour connaître sa compression potentielle.
$ jpegoptim -n sample.jpg
Lorsque j'ai revérifié sa taille après avoir utilisé la commande jpegoptim comme ci-dessus, je n'ai vu aucun changement dans sa taille. Cela garantit que la commande jpeg avec l'indicateur -n affiche uniquement le pourcentage et la taille de compression futurs sans réellement compresser l'image.
Compresser les images "avec" une perte de qualité
Parfois, nous voulons compresser nos images en sachant que le processus ne sera pas sans perte. La bonne chose est qu'avec Jpegoptim, vous pouvez spécifier la perte de qualité qui vous convient. Il existe deux manières de compresser vos images "avec perte" ;
Voici comment spécifier le pourcentage de compression :
$ jpegoptim -m[percentage_in_numbers] image.jpg
Voici mon image d'origine :
Et voici à quoi cela ressemble avec un facteur de qualité de 10 % :
ou sous forme de pourcentage (1 % - 99 %) de la taille du fichier d'origine.
Voici comment vous pouvez spécifier la taille en Ko pour l'image résultante :
$ jpegoptim --size=[size-in-kb] image_name.jpg
Optimiser les fichiers image par lots
Il existe plusieurs façons d'utiliser Jpegoptim pour compresser plusieurs fichiers à la fois.
La première consiste à spécifier tous les fichiers que vous souhaitez compresser dans une seule commande jpegoptim comme suit :
$ jpegoptim file1.jpeg file2.jpg file3.jpg
La commande écrasera tous les fichiers spécifiés et avec les nouveaux compressés.
La deuxième méthode consiste à indiquer à Jpegoptim de compresser tous les fichiers d'un certain type, par exemple jpg, résidant tous dans le même dossier :
$ jpegoptim *.jpg
Afin de voir comment cette commande fonctionne, j'ai répertorié tous les fichiers de mon dossier Images avec l'indicateur -l. Cette commande imprimerait la taille totale de toutes les images résidant dans le dossier actuel :
$ ls -l
Ensuite, j'ai utilisé la même commande ls -l pour voir la différence entre la commande Jpegoptim et la taille totale de tous les fichiers. Vous pouvez voir la différence remarquable du nombre total d'octets dans le résultat suivant :
Ce n'étaient que deux fichiers; vous pouvez économiser beaucoup d'espace comme celui-ci. La beauté de l'ensemble du processus est que vous ne faites aucun compromis sur la qualité de vos précieuses images. Vous pouvez, bien sûr, faire de même avec d'autres formats de fichiers pris en charge par Jpegoptim.
La troisième et une option très utile est que vous pouvez même utiliser un script shell pour automatiser la compression de tous les fichiers d'un même type situés dans le répertoire courant. Voici comment procéder :
Bash Script pour compresser tous les fichiers jpg dans le répertoire courant
Cette section explique comment vous pouvez écrire un script shell qui compressera tous les jpg situés dans le répertoire courant dans un dossier nommé "compressed". Le script ne créera pas le dossier; il enregistrera simplement la sortie dans un dossier déjà créé portant ce nom.
Tout d'abord, déplacez-vous dans le dossier Documents où nous allons créer le script :
$ cd Documents
Remarque :Vous pouvez enregistrer le script où vous le souhaitez. Il est conseillé de créer tous les scripts dans le même dossier afin de ne pas perdre de vue l'endroit où vous les avez enregistrés. Personnellement, je préfère enregistrer tous mes scripts dans le dossier Documents.
Créer le scénario
Ouvrez un nouveau fichier de script dans l'un de vos éditeurs de texte préférés. Nous allons utiliser l'éditeur nano afin d'ouvrir un fichier de script vide du nom de compressAll.sh
$ nano compressAll.sh
Dans ce fichier vide, ajoutez le script suivant.
#!/bin/sh # compress all *.jpg files in the current directory # and place them in ./compressed directory # with the same modification date as original files. for i in *.jpg; do jpegoptim -d ./compressed -p "$i"; done
Astuce : Au lieu de taper tout le script dans votre fichier bash, vous pouvez le copier à partir d'ici et le coller dans le terminal en utilisant Ctrl+Maj+V, ou en utilisant l'option Coller du menu contextuel.
Voici à quoi ressemblerait votre fichier :
Maintenant, quittez le fichier via le raccourci Ctrl + X. Il vous sera alors demandé de sauvegarder le fichier sur le "Save modified buffer?" rapide. Tapez Y puis appuyez sur Entrée ; votre fichier de script est maintenant enregistré dans le dossier en cours.
Afin de rendre ce fichier exécutable par l'utilisateur courant, lancez la commande suivante dans votre Terminal :
$ chmod +x compressAll.sh
Afin d'exécuter le script, changez votre répertoire actuel pour celui dont vous souhaitez compresser les jpgs (dans mon cas, le répertoire Pictures). Assurez-vous que le répertoire contient un dossier nommé « compressé ». S'il n'y est pas, veuillez en créer un avant d'exécuter le script.
Exécuter le script
Enfin, exécutez le script comme suit :
$ /home/[username]/Documents/compressAll.sh
Cette commande exécutera le script bash à partir du dossier dans lequel vous l'avez créé. C'est la raison pour laquelle vous avez dû spécifier le chemin complet vers ce fichier .sh.
Vous verrez que tous les fichiers compressés seront écrits dans le dossier « compressé ». Vous pouvez le vérifier via la commande suivante :
$ ls compressed
Il s'agissait d'optimiser l'image via l'utilitaire Jpegoptim. Pour plus de détails, vous pouvez consulter la page de manuel via la commande suivante :
$ man jpegoptim
Désormais, partager vos images sur Internet et les télécharger vers un emplacement à bande passante et stockage restreints ne devrait plus poser de problème