#!/bin/bash # # Ce script peut être utilisé dans Thunar ou en ligne de commande # pour redimmensionner une liste de photo dans une resolution cible # # Il nécessite Xdialog et ImageMagick pour fonctionner et par conséquent # ne fonctionne que si un serveur X11 est disponible. # # Pour rajouter une action personnalisée dans Thunar, aller dans le # menu "Edit->Configure custom actions ..." et renseigner les champs # comme suit : # # Onglet "Basic" : # Name : Resize image # Description : Allow to resize image # Command : /resize_photo %F # Onglet : "Appearance Conditions" # File Pattern : * # Appears if selection contains : Image files # # Les fichiers redimensionnés sont nommés comme suit : # -. # - si le fichier n'avait pas d'extension SIZE=`Xdialog --stdout --no-cancel --screen-center --inputbox "Entrer la resolution cible" 0 0 1024` if [ "x${SIZE}" = "xok" -o x`echo ${SIZE} | sed 's@^[0-9]*$@ok@'` != "xok" ] then /usr/bin/Xdialog --screen-center --infobox "$SIZE n'est pas une valeur correcte" 0 0 0 exit 1 fi NB_PHOTOS=$# RESULTFILE=`mktemp` until [ -z "$1" ] do if [ x`identify "$1" | sed "s@$1 JPEG .*@ok@"` = "xok" ] then cible=`echo "$1" | sed "s@\(.*\)\.\([^\.]*\)@\1-${SIZE}.\2@"` if [ "$cible" = "$1" ] then cible="${1}-${SIZE}" fi convert "$1" -resize ${SIZE}x${SIZE} "$cible" if [ $? -eq 0 ] then echo "L'image $1 a été redimensionnée avec succès" >> "$RESULTFILE" echo "Le nouveau fichier est $cible" >> "$RESULTFILE" else echo "Il y a une erreur lors du redimmensionnement de l'image $1" >> "$RESULTFILE" fi else echo "Le fichier $1 n'est pas un fichier JPEG" >> "$RESULTFILE" fi shift echo "." done | Xdialog --progress "Traitement des photos" 0 0 $NB_PHOTOS echo $RESULT Xdialog --screen-center --no-cancel --textbox "$RESULTFILE" 600x440 rm -f "$RESULTFILE"