Home » Système d'exploitation » Réduire la taille d’une image en Bash

Réduire la taille d’une image en Bash

Petit retour d’expérience sur une demande que j’ai eu récemment. Une connaissance m’avait demandé de diminuer la taille d’une de ces photos.

Personnellement, je ne voulais pas perdre de temps à utiliser Gimp pour faire ce genre de chose. Utilisant Linux, j’ai trouvé la solution avec imagemagick.
il suffit de taper la commande suivante :

convert image.jpg -resize 50% image50.jpg

Cette ligne de commande permet de réduire l’image image.jpg de 50%.
L’image image50.jpg sera l’image réduite.

Pour aller plus loin. Imaginons que vous ayez tout un dossier de photo jpg à réduire, je vous propose le script suivant :

for i in *.jpg; do
	j="${i%.jpg}"
	if [ -z "$1" ]; then
		convert "$j.jpg" -resize 50% "$j.jpg";
	elif [ -n "$1" ]; then
		convert "$j.jpg" -resize "$1"% "$j.jpg";
	fi
done

J’ai personnellement mis ce script dans un fichier, que j’ai nommé pictures.sh.

pictures.sh
pictures.sh 25
pictures.sh 60

Dans votre terminal, si vous lancez le script sans argument, il réduira les images à 50%.

Si vous ajoutez un argument, comme 25 ou 60 dans l’exemple ci-dessus, les images seront réduire de 25% ou 60%.

Améliorations

Il y a plein de piste d’amélioration à ce script Bash.
La première amélioration étant la gestion de l’argument, et le fait de n’accepter que des chiffres de 1 à 99.
La deuxième amélioration étant la gestion des autres formats d’images : PNG, JPEG, etc…

Inspirations

Site michtoblog : [terminal] Réduire la taille d’une image en ligne de commande
Documentation imagemagick : https://doc.ubuntu-fr.org/imagemagick
Site commentcamarche : Bash – Les arguments (paramètres)

Posté dans Système d'exploitation, Ubuntu

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

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