Trucs:Redimensionner des images
Redimensionner des images, script utilisant ImageMagick
Douglas SIX<douglas POINT six AT 9online POINT fr>
Voici un script shell qui permet de redimensionner toutes les images JPEG d'un répertoire.
Il faut que imagemagick soit installé bien sûr pour que cela fonctionne.
Le Script
#!/bin/bash if [ $# -ne 1 ] then echo "Usage: './resizePictures.sh taille' avec la taille sous la forme largeurxhauteur (640x480)." exit -1 fi rep=resized-$1 if [ -d "$rep" ]; then echo "Repertoire $rep existe. Je ne le crée pas." else echo "Repertoire $rep n'existe pas. Je le crée." mkdir $rep fi if [ 'ls *JPG' ]; then for i in *.JPG do let "n += 1" done echo "$n fichiers *.JPG existent. Je les converti." for i in *.JPG do if [ -e $rep/$i ]; then echo "Le fichier $i existe deja dans le repertoire $rep." else taille=`identify $i | awk '{print $3}'` echo "Le fichier $i($taille) sera converti en $1 et enregistre dans le repertoire $rep." convert -geometry $1 $i $rep/$i fi done else echo "Aucun fichiers *.JPG n'existent. Je ne fait rien." fi if [ 'ls *jpg' ]; then for i in *.jpg do let "n += 1" done echo "$n fichiers *.jpg existent. Je les converti." for i in *.jpg do if [ -e $rep/$i ]; then echo "Le fichier $i existe deja dans le repertoire $rep." else taille=`identify $i | awk '{print $3}'` echo "Le fichier $i($taille) sera converti en $1 et enregistre dans le repertoire $rep." convert -geometry $1 $i $rep/$i fi done else echo "Aucun fichiers *.jpg n'existent. Je ne fait rien." fi
Utilisation
L'utilisation du script est simple. Imaginons que l'on copie le script dans un fichier appellé "resizePictures.sh"
chmod +x resizePictures.sh cd Pictures ./resizePictures.sh 1024x768
Le script va créer un nouveau répertoire, s'il n'existe pas déjà, du nom "resized-1024x768". Il va ensuite redimensionner chaque image JPEG qu'il va trouver dans le répertoire en cours, et ce même si l'extension est en majuscule ou en minuscule.
L'image créée aura la taille 1024x768 pixels. Elle sera enregistrée dans le répertoire "resized-1024x768".