Dernier message de la page précédente :
Hello MézigComment s"appelle ce script?
Cdlt
Dernier message de la page précédente :
Hello MézigTu y mets le nom que tu veux , ça peut etre abracadabra si tu veux , ce nom tu le retrouveras dans le clic droitrhodes38 a écrit :Hello Mézig
Comment s"appelle ce script?
Cdlt
Mézig, je pense que rhodes38 te demande le code source de ton script ou l'endroit où on peut le télécharger. En effet, le clic droit sur une image te proposera l'action si elle est dans le répertoire qui va bien, mais le script qui va avec doit être connu.mézig a écrit :Tu y mets le nom que tu veux , ça peut etre abracadabra si tu veux , ce nom tu le retrouveras dans le clic droit
Code : Tout sélectionner
#!/bin/sh
# Auteur : Julien Leloup
# Site : http://leloup.org
# Version : 1.1
# Date : 26/01/2011
# Historique :
# - 1.1 - 26/01/2011 - Gestion des espaces dans le nom des fichiers
# - 1.0 - 24/10/2010 - Version initiale
# Dépendances :
# - zenity
# - imagemagick
# Installation :
# - Pré-requis : zenity et imagemagick doivent être installés
# - Rendre ce script executable
# - Déposer ce script dans le dossier $HOME/.gnome2/nautilus-scripts
# Utilisation : Accès par bouton droit / Scripts / image-redim après sélection d'une ou plusieurs images
# Fonctions :
# - Redimensionnement d'images par lot
# - Paramatrage d'une largeur et d'une hauteur maxi à ne pas dépasser, tout en conservant le ratio.
# - Paramatrage de la qualité de compression
# - Choix de la sortie (Ecrasement, préfixe)
# - Se base sur le type mime pour ne traiter que les images
# - N'agrandit pas les images dont les dimensions sont inférieures aux dimensions choisies
# Teste si l'utilisateur a cliqué sur annuler
f_annuler() {
if [ "$?" != 0 ] ; then
# On quitte le programme
exit
fi
}
# Message de valeur obligatoire
f_valeur() {
zenity --error --title="image-redim" --text="Vous devez choisir une valeur"
}
# Teste si au moins un fichier a a été choisi
if [ $# -eq 0 ]; then
zenity --error --title="image-redim" --text="Vous devez selectionner au moins une image pour utiliser ce programme."
exit 1
fi
# On force la saisie
while [ ! "$v_dimensions_max" ]; do
# Choix des dimensions maxi (attention, en cas d'ajout d'une nouvelle dimension, veillez à suivre la même structure <largeur>x<hauteur>)
v_dimensions_max=`zenity --list --title="image-redim" --text="Sélectionner, conserve le ratio, dimensions max à ne pas dépasser (pixels)" --column="" "choisir..." "640x480" "800x600" "1024x768" "1280x1024" "1680x1050" "1920x1200" --hide-header`
# Si clic sur annuler
f_annuler
# Si clic sur valider sans avoir choisi de valeur
if [ ! "$v_dimensions_max" ]; then
f_valeur
fi
done
# Si choix, choisir, saisie de la largeur
if [ "$v_dimensions_max" = "choisir..." ] ; then
# On force la saisie
while [ ! "$v_largeur_max" ]; do
# Saisie de la largeur
v_largeur_max=`zenity --entry --title="image-redim" --text="Saisissez une largeur personnalisée"`
# Si clic sur annuler
f_annuler
# Si clic sur valider sans avoir choisi de valeur
if [ ! "$v_largeur_max" ]; then
f_valeur
fi
# Si la valeur choisie n'est pas un entier positif
if [ ! $(echo "$v_largeur_max" | grep -E "^[0-9]+$") ] ; then
zenity --info --text="La largeur maxi doit être un entier positif"
# Réinitialisation de la valeur saisie
v_largeur_max=""
fi
done
# On force la saisie
while [ ! "$v_hauteur_max" ]; do
# Saisie de la hauteur
v_hauteur_max=`zenity --entry --title="image-redim" --text="Saisissez une hauteur"`
# Si clic sur annuler
f_annuler
# Si clic sur valider sans avoir choisi de valeur
if [ ! "$v_hauteur_max" ]; then
f_valeur
fi
# Si la valeur choisie n'est pas un entier positif
if [ ! $(echo "$v_hauteur_max" | grep -E "^[0-9]+$") ] ; then
zenity --info --text="La hauteur maxi doit être un entier positif"
# Réinitialisation de la valeur saisie
v_hauteur_max=""
fi
done
# Ecriture du choix dans les dimensions maxi
v_dimensions_max=$v_largeur_max"x"$v_hauteur_max
fi
# Choix de la qualité d'image
v_qualite=`zenity --scale --title="image-redim" --text="Saisissez la qualité de l'image produite\n\n 100 : qualité excellente mais image lourde\n 0 : qualité trés mauvaise\n 85 : bon compromis entre qualité et poids" --value=85 --min-value=0 --max-value=100`
# Si clic sur annuler
f_annuler
# On force la saisie
while [ ! "$v_sortie" ]; do
# Choix de la sortie
v_sortie=`zenity --list --title="image-redim" --text="choisir la sortie" --column="" "Ecrasement des images existantes" "Création d'images avec un préfixe" --hide-header`
# Si clic sur annuler
f_annuler
# Si clic sur valider sans avoir choisi de valeur
if [ ! "$v_sortie" ]; then
f_valeur
fi
done
# Comptage du nombre total de fichiers séléctionnés, images ou non
v_total=`file $* | wc -l`
# Compteur pour barre de progression
v_compteur=0
v_pourcentage=0
# Boucle sur les fichiers séléctionnés
(while [ $# -gt 0 ]; do
# Récupération du nom du fichier courant
v_fichier_courant="$1"
# Vérification de son type mime
v_mime_courant=`file -bi "$v_fichier_courant"`
v_fichier_est_image=`echo "$v_mime_courant" | grep image | wc -l`
# Si c'est bien une image
if [ ! $v_fichier_est_image -eq 0 ]; then
# Récupération de la largeur de l'image courante
v_largeur_avant=`identify -format '%w' "$v_fichier_courant"`
# Récupération de la hauteur de l'image courante
v_hauteur_avant=`identify -format '%h' "$v_fichier_courant"`
# Récupération de la largeur choisie
v_largeur_choisie=$(echo $v_dimensions_max | cut -d"x" -f1);
# Récupération de la hauteur choisie
v_hauteur_choisie=$(echo $v_dimensions_max | cut -d"x" -f2);
# Si au moins une dimension de l'image courante est supérieure ou égale à la dimension correspondante choisie par l'utilisateur
# (supérieur strict : -gt)
# (supérieure ou égal : -ge)
if [ $v_largeur_avant -ge $v_largeur_choisie ] || [ $v_hauteur_avant -ge $v_hauteur_choisie ] ; then
# Si Ecrasement des images existantes
if [ "$v_sortie" = "Ecrasement des images existantes" ] ; then
convert "$v_fichier_courant" -resize $v_dimensions_max -quality $v_qualite "$v_fichier_courant"
fi
# Si nouvelle image avec un préfixe
if [ "$v_sortie" = "Création d'images avec un préfixe" ] ; then
nouveauprefixe="image_redim_"
nouveaubasename=`basename "$v_fichier_courant"`
nouveaunom=$nouveauprefixe$nouveaubasename
convert "$v_fichier_courant" -resize $v_dimensions_max -quality $v_qualite "$nouveaunom"
fi
fi
fi
# Incrémentation du compteur de barre de progression
v_compteur=$(( v_compteur+=1 ))
# Calcul du pourcentage pour barre de progression
v_pourcentage=$(( v_compteur*100/v_total ))
# Transmission des informations à la barre de progression
echo "# $v_fichier_courant"
echo "$v_pourcentage"
shift
done
) | zenity --progress --text="image-redim" --percentage=0 --auto-kill --auto-close
# Fin du programme avec succès ;-)
zenity --info --text="Programme terminé avec succès."