#1 Le 17/08/2011, à 01:44
- Blondin
[Résolu] Redimension d'images par lot, taille maxi, conserver le ratio
Bonjour à tous,
Je cherche une façon simple et graphique de redimensionner des images par lot avec comme contrainte qu'elles gardent leur ratio hauteur/largeur et attribuer une taille maximum en pixel pour les côtés.
ex: que la photo soit prisent de n'importe quel appareil et dans n'importe quel sens, je place mes photos dans un dossier et je peux redimensionner les photos (si nécessaires) qui ont une hauteur ou une largeur supérieur à 2048 px pour les ramener à 2048 pixels tout en conservant le ratio.
Pour être plus clair, l'objectif est:
Pour de nombreuses raisons je suis sous google+ et ma famille aussi (oui je le jure, quand diaspora aura les points que je nécessite je basculerais, et si j'ai du temps j'aiderais le projet comme je peux), et pour que le stockage des images soit illimités, les photos ne doivent pas dépasser 2048 pixel en hauteur ou en largeur. Je n'ai pas de soucis avec cela, Gimp répond à mes attentes mais effectuer cette manipulation sur de nombreuses photos et en interface graphique permettrait à mon père de le réaliser facilement et rapidement. Et dernier détail, mon père n'accroche pas à des applications comme picasa, shotwell au autre. Je chercherai plutôt un nautilus-image-converter avec une option "redimensionner avec hauteur ou largeur inférieure ou égale à...".
En espérant être clair !
Merci d'avance
Edit: Pour être certain de bien m'expliquer je rajouterais que si une image est plus petite que la taille maximum dans ce dossier, je ne souhaite pas qu'elle soit redimensionnée.
Dernière modification par Blondin (Le 02/09/2011, à 17:28)
Qui troll un oeuf, troll un boeuf
Hors ligne
#2 Le 17/08/2011, à 01:55
- bluedid29
Re : [Résolu] Redimension d'images par lot, taille maxi, conserver le ratio
Bonjour Blondin,
J'utilise Phatch : http://doc.ubuntu-fr.org/phatch qui permet non seulement de re-dimensionner en lot mais aussi bien d'autres manipulations !
Bonne semaine
BlueDid
Linux en Audio et Midi, c'est magique ;-) http://linuxmao.org Debian Wheezy, testing, Sid, Ubuntu Tango 10.04, Kx 12.04, Studio 13.04, 14.04, Mint17 et blog MAO sur Linux http://bluedid29.mdl29.net/
Hors ligne
#3 Le 17/08/2011, à 02:09
- Blondin
Re : [Résolu] Redimension d'images par lot, taille maxi, conserver le ratio
Merci bluedid29,
En effet, ce logiciel est excellent et fonctionne très bien mais autant il m'a semblé super simple, autant avant que mon père arrive à l'utiliser c'est pas gagné. En attendant de trouver plus "user-friendly pour les noobs", je vais essayer de lui proposer...
En tout cas merci
ps: Je ne passe pas encore ce post en résolu dans l'idée de pouvoir trouver un système plus simple, au cas où mon père ne s'en sort pas...
Qui troll un oeuf, troll un boeuf
Hors ligne
#4 Le 17/08/2011, à 03:15
- Tomzz
Re : [Résolu] Redimension d'images par lot, taille maxi, conserver le ratio
Bonjour,
Un script nautilus te ferai ça très bien: sélectionner X photos, clic droit> script > redimensionner et hop hop hop c'est fait.
J'avais posté un script à base d'imagemagick ici mais ça fais plusieurs fois que je le recherche et impossible d'y remettre le main dessus.
Hors ligne
#5 Le 17/08/2011, à 03:47
- Gatsu
Re : [Résolu] Redimension d'images par lot, taille maxi, conserver le ratio
+1 pour le script nautilus.
L'option imagemagick pour faire ce que tu souhaites est :
-geometry 2048x2048>
Hors ligne
#6 Le 18/08/2011, à 00:33
- Blondin
Re : [Résolu] Redimension d'images par lot, taille maxi, conserver le ratio
Merci pour vos réponse,
le script nautilus me parait parfait dans l'idée, imagemagick est en effet géniale...
J'ai trouvé comment créer un script pour nautilus, il ne me "reste plus qu'à" comprendre ce que je dois mettre dedans...
Pas facile quand on maîtrise pas la programmation, mais je cherche.
Si quelqu'un s'y connaît et a un peu de temps je suis pas contre un coup de main.
Sinon, de toute façon, je post ici le résultat si j'y parviens au cas où quelqu'un soit interessé.
Encore merci à vous !
ps: C'est hors sujet sur ce topic mais imagemagick peut-il supprimer les données exif d'une photo, je ne parviens pas encore à trouver d'infos la dessus...
Dernière modification par Blondin (Le 18/08/2011, à 00:56)
Qui troll un oeuf, troll un boeuf
Hors ligne
#7 Le 23/08/2011, à 20:46
- entomolo
Re : [Résolu] Redimension d'images par lot, taille maxi, conserver le ratio
Bonsoir
Pourquoi ne pas utiliser l'excellente phototèque Digikam qui en plus de classer fait le redimensionnement par lot très bien, le renommage également et bien d'autre chose d'ailleurs.
cordialement
La liberté n'a pas de prix, les Logiciels Libres non plus.
Hors ligne
#8 Le 24/08/2011, à 01:50
- Blondin
Re : [Résolu] Redimension d'images par lot, taille maxi, conserver le ratio
Bonsoir,
Merci entomolo pour ta suggestion.
Le fait est que le besoin est pour mon père et qu'un script de redimensionnement dans nautilus lui permet de s'affranchir d'une application de plus.
C'est pourquoi je reste sur cette solution, bien que cela me prenne du temps (je n'avais jamais écrit un script ou codé de ma vie, seulement de vague retouches a des html et php).
Mais j'avance bien (et j'apprend aussi beaucoup), et à ce sujet, je ne manquerais pas de poster le résultat "final" (j'espère d'ici une semaine) pour avoir vos critiques si vous avez le temps et au cas où cela pourrait servir à quelqu'un...
En tout cas merci de ton attention.
Dernière modification par Blondin (Le 24/08/2011, à 04:53)
Qui troll un oeuf, troll un boeuf
Hors ligne
#9 Le 24/08/2011, à 03:01
- Tomzz
Re : [Résolu] Redimension d'images par lot, taille maxi, conserver le ratio
Fais gaffe à toi, c'est très addictif ce genre d'exercices
Hors ligne
#10 Le 25/08/2011, à 18:35
- entomolo
Re : [Résolu] Redimension d'images par lot, taille maxi, conserver le ratio
bonjour, c'est encore moi
regardes ce lien, un script tout fait est proposé
Un script chez Lea Linux
librement
La liberté n'a pas de prix, les Logiciels Libres non plus.
Hors ligne
#11 Le 31/08/2011, à 15:39
- Blondin
Re : [Résolu] Redimension d'images par lot, taille maxi, conserver le ratio
Bonjour
@entomolo, merci mais ce n'était pas vraiment ce que je cherchais
@Tomzz, merci de la remarque mais c'est trop tard...
Du coup, voici un premier jet du script qui, me semble t-il, fonctionne pas trop mal. (Un seul bug trouvé est que les photos qu'ont m'a envoyé vraisemblablement d'un Iphone, se remettent en paysage systématiquement, mais je crois que c'est un bug de l'Iphone sur son format).
Je voudrais rajouter encore es éléments, mais en attendant, voilà le script où il en est, qui rempli déjà plus de fonctions que je l'espérais.
!!!ATTENTION!!!, c'est mon premier script, si vous l'utilisez, je ne garanti rien (pour ceux qui ne s'y connaissent pas)
!!!ATTENTION!!!, c'est mon premier script, il pourrait vous choquer/sembler ridicule/abîmer les yeux (pour ceux qui s'y connaissent)
En tout cas, si vous avez des remarques, je suis preneur...
#!/bin/sh
# Auteur : Blondin
# D'après un script de : Julien Leloup http://leloup.org
# Version : 0.1
# Date : 31/08/2011
# Historique :
# - 0.1 - 31/08/2011 - Reprise du script et adaptation au besoin de son auteur
# License : GNU GPL ver 3.0
# Dépendances :
# - zenity
# - imagemagick
# Installation :
# - Pré-requis : zenity et imagemagick doivent être installés
# - Rendre ce script exécutable
# - Déposer ce script dans le dossier $HOME/.gnome2/nautilus-scripts
# Utilisation : Accès par bouton droit / Scripts / Redimensionner pour google+ après sélection d'une ou plusieurs images
# Fonctions :
# - Redimensionnement d'images par lot avec comme taille maximale 2048x2048 en conservant le ratio
# - Choix de la sortie (écrasement, préfixe, sous-répertoire "Google+")
# - Se base sur le type mime pour ne traiter une selection contenant uniquement des images
# - Supprime les données EXIF quelque soit la taille de l'image
# Script :
# Teste si l'utilisateur a cliqué sur annuler
f_annuler() {
if [ "$?" != 0 ] ; then
# On quitte le programme
zenity --error --title="Redimensionner image(s)" --text="Vous avez annulé l'opération de redimensionnement."
exit
fi
}
# Teste si au moins un fichier a été choisi
if [ $# -eq 0 ]; then
zenity --error --title="Redimensionner image(s)" --text="Vous devez sélectionner au moins une image à redimensionner."
exit 1
fi
# Verification si tous les fichiers sont bien des images
fichier_courant="$#"
for fichier_courant
do
# Vérification de son type mime
mime=`file -bi "$fichier_courant"`
fichier_est_image=`echo "$mime" | grep image | wc -l`
# Si les fichiers ne sont pas tous des images...
if [ ! $fichier_est_image -eq 1 ]; then
zenity --error --title="Redimensionner image(s)" --text="Nous ne pouvons redimmensionner QUE des images."
# ...On quitte le programme
exit 1
fi
done
# On affiche une liste des méthodes proposées
while [ ! "$sortie" ]; do
# Choix de la méthode
sortie=`zenity --list --radiolist --width=500 --title="Redimensionner image(s)" --text="Sélectionnez la méthode" --column="" --column="" FALSE "Remplacer les images existantes" \ FALSE "Créer de nouvelles images avec un préfixe" \ FALSE "Redimensionner les images dans un sous-repertoire \"Google+\"" --hide-header`
# Si clic sur annuler
f_annuler
# Si clic sur valider sans avoir choisi de valeur
if [ ! "$sortie" ]; then
zenity --error --title="Redimensionner image(s)" --text="Vous devez choisir une option !"
f_valeur
fi
done
# Si on choisit d'écraser les images existantes, demande de confirmation
if [ "$sortie" = "Remplacer les images existantes" ] ; then
zenity --question --text="Vos images vont être remplacées \ Etes-vous certain de vouloir continuer ?"
# Si non, on annule
f_annuler
fi
# Si on choisit d'utiliser un préfixe
while [ ! "$prefixe" ]; do
if [ "$sortie" = "Créer de nouvelles images avec un préfixe" ] ; then
prefixe=`zenity --entry --title="Redimensionnement image(s)" --text="Choisissez un préfixe:" --entry-text "" `
# Si clic sur annuler
f_annuler
# Si clic sur valider sans avoir choisi de valeur
if [ ! "$prefixe" ]; then
zenity --error --title="Redimensionner image(s)" --text="Vous devez choisir une option !"
f_valeur
fi
# Sinon on continue
else
break
fi
done
# Si on choisit d'utiliser un sous-dossier "Google+"
if [ "$sortie" = "Redimensionner les images dans un sous-repertoire \"Google+\"" ]; then
repertoire="Google+"
# Si le dossier n'existe pas, il sera créé après confirmation
if [ ! -d "$repertoire" ]; then
zenity --question --text="Le sous-répertoire \"Google+\" n'existe pas. Voulez-vous le créer ?"
# Si non, on annule
f_annuler
# Création du dossier
mkdir "$repertoire"
fi
fi
# Compteur pour barre de progression
compteur=0
pourcentage=0
# Comptage du nombre total de fichiers sélectionnées
total=`file $* | wc -l`
# Les variables du redimensionnement
# Dimensions maxi
dimensions_max="2048x2048"
# Qualité d'image
qualite=100
# Boucle sur les fichiers sélectionnés pour supprimer les données EXIF et/ou redimensionner
(while [ $# -gt 0 ]; do
# Récupération du nom du fichier selectionné
fichier_selectionne="$1"
# Si écrasement des images existantes
if [ "$sortie" = "Remplacer les images existantes" ] ; then
convert "$fichier_selectionne" -geometry "$dimensions_max>" -quality $qualite -strip "$fichier_selectionne"
fi
# Si nouvelle image avec un préfixe
if [ "$sortie" = "Créer de nouvelles images avec un préfixe" ] ; then
nouveaubasename=`basename "$fichier_selectionne"`
nouveaunom=$prefixe$nouveaubasename
convert "$fichier_selectionne" -geometry "$dimensions_max>" -quality $qualite -strip "$nouveaunom"
fi
# Si dans un sous-repertoire "Google+"
if [ "$sortie" = "Redimensionner les images dans un sous-repertoire \"Google+\"" ]; then
convert "$fichier_selectionne" -geometry "$dimensions_max>" -quality $qualite -strip "$repertoire/$fichier_selectionne"
fi
# Incrémentation du compteur de barre de progression
compteur=$(( compteur+=1 ))
# Calcul du pourcentage pour barre de progression
pourcentage=$(( compteur*100/total ))
# Transmission des informations à la barre de progression
echo "# $fichier_selectionne"
echo "$pourcentage"
shift
done
) | zenity --progress --text="Redimensionner image(s)" --percentage=0 --auto-kill --auto-close
# Fin du programme avec succès
# Si écrasement des images existantes
if [ "$sortie" = "Remplacer les images existantes" ] ; then
zenity --info --text="Redimensionnement réalisé avec succès. Vos images ont été remplacées"
fi
# Si nouvelle image avec un préfixe
if [ "$sortie" = "Créer de nouvelles images avec un préfixe" ] ; then
zenity --info --text="Redimensionnement réalisé avec succès. Vos images ont été créées avec le préfixe : \"$prefixe\""
fi
# Si dans un sous-repertoire "Google+"
if [ "$sortie" = "Redimensionner les images dans un sous-repertoire \"Google+\"" ]; then
zenity --info --text="Redimensionnement réalisé avec succès. Vos images ont été créées dans le sous-répertoire \"Google+\""
fi
Dernière modification par Blondin (Le 31/08/2011, à 19:38)
Qui troll un oeuf, troll un boeuf
Hors ligne