#1 Le 02/01/2012, à 18:30
- Neko62
[RESOLU] traitement par lot redimensionnement automatique d'image
Bonjour à tous et meilleurs voeux
voilà je souhaiterais effectuer un traitement par lot pour redimenssionner un ensemble d'images automatiquement MAIS ces clichés sont stockés dans une architecture de dossiers bien spécifique ( année / mois / jour ) ?
Donc je voudrais que ce traitement par lot en ligne de commande ou non aille piocher dans chaque sous répertoire les clichés et recrée une nouvelle structure de dossiers identique à celle d'origine avec les clichés redimenssionnés dedans.
Une idée pour m'aider ? Un programme adapté ? Un plug-in pour Gimp ?
D'avance merci.
Dernière modification par Neko62 (Le 03/01/2012, à 23:25)
Hors ligne
#2 Le 02/01/2012, à 19:51
- Sebien
Re : [RESOLU] traitement par lot redimensionnement automatique d'image
Selon la taille du dossier parent et tous les dossiers enfants et des images originales, je ferais :
1° copie intégrale du répertoire et des photos + redimensionnement des photos copiées (si le dossier n'est pas trop lourd)
2° recréer l'arborescence seule puis redimensionner les photos :
cd \Mon\Chemin\Vers\Mon\Répertoire\Parent
find . -type d -printf "mkdir \"%p\"\n" > /tmp/ScriptCreationArborescence.sh
chmod +x /tmp/ScriptCreationArborescence.sh
cd \Mon\Chemin\Vers\Mon\Nouveau\Répertoire\Parent
/tmp/ScriptCreationArborescence.sh
Pour le redimensionnement je conseil ImageMagick et toute la doc qui va bien sur le web.
Cordialement.
Hors ligne
#3 Le 02/01/2012, à 20:16
- strokkur
Re : [RESOLU] traitement par lot redimensionnement automatique d'image
Phatch est pas mal également pour des traitements par lot
Hors ligne
#4 Le 02/01/2012, à 20:21
- mydjey
Re : [RESOLU] traitement par lot redimensionnement automatique d'image
Bonsoir,
Ici les logiciels de traitement par lot : http://doc.ubuntu-fr.org/photo#traitement_par_lots
Mon site : http://mydjey.eu/
Hors ligne
#5 Le 02/01/2012, à 21:37
- pingouinux
Re : [RESOLU] traitement par lot redimensionnement automatique d'image
Bonsoir,
Voici une proposition, avec convert, pour les images .jpg (mais ce n'est qu'un exemple) :
#! /bin/bash
rep_orig=~/Photos
rep_dest=~/Photos_modifiees
[ -d "$rep_dest" ] || mkdir "$rep_dest"
cd "$rep_orig"
suf=jpg
for image in $(find -iname \*.$suf)
do
rep=$(dirname "$image"); bsn=$(basename "$image")
mkdir -p "$rep_dest/$rep"
# Traitement de l'image
convert -resize 1024x768 $image "$rep_dest/$rep/$bsn"
done
Dernière modification par pingouinux (Le 02/01/2012, à 21:44)
Hors ligne
#6 Le 03/01/2012, à 00:26
- Neko62
Re : [RESOLU] traitement par lot redimensionnement automatique d'image
Merci à tous pour toutes ces possibilités que je vais tester rapidement.
dernière chose mon dimensionnement doit aboutir à des images de 720 x 480 pixels. Mais comment m'assurer que les 720 pixels seront attribués à la largeur pour un cliché au format paysage et à la hauteur pour un cliché au format portrait quand je travaille en ligne de commande ( c'est du jpg ) ?
Merci
Hors ligne
#7 Le 03/01/2012, à 01:06
- mydjey
Re : [RESOLU] traitement par lot redimensionnement automatique d'image
Pour t'en assurer le meilleur moyen c'est de faire un essai sur une ou deux images de chaque format.
Mon site : http://mydjey.eu/
Hors ligne
#8 Le 03/01/2012, à 09:05
- pingouinux
Re : [RESOLU] traitement par lot redimensionnement automatique d'image
Version améliorée du #5, tenant compte de l'orientation des photos :
#! /bin/bash
rep_orig=~/Photos
rep_dest=~/Photos_modifiees
mkdir -p "$rep_dest"
cd "$rep_orig"
suf=jpg
W=720; H=480
for image in $(find -iname \*.$suf)
do
# Taille de l'image
wh=$(identify "$image"|awk '{for (i=1;i<=NF;i++) {if($i=="JPEG") print $(i+1)}}')
w=$(cut -dx -f1 <<<$wh)
h=$(cut -dx -f2 <<<$wh)
[[ $w -gt $h ]] && WH=$W"x"$H || WH=$H"x"$W
rep=$(dirname "$image"); bsn=$(basename "$image")
# Création des nouveaux répertoires si absents
mkdir -p "$rep_dest/$rep"
# Traitement de l'image
convert -resize $WH "$image" "$rep_dest/$rep/$bsn"
done
Corrigé : Ajout de " de part et d'autre de $image
Dernière modification par pingouinux (Le 03/01/2012, à 22:45)
Hors ligne
#9 Le 03/01/2012, à 22:05
- Neko62
Re : [RESOLU] traitement par lot redimensionnement automatique d'image
Merci pingoulnux,
la version n°1 fonctionne mais ne respecte pas l'orientation du cliché.
Et malheureusement la version n°2 plante avec le message suivant :
"redim_2: 17: Syntax error: redirection unexpected"
Une idée ?
Hors ligne
#10 Le 03/01/2012, à 22:25
- pingouinux
Re : [RESOLU] traitement par lot redimensionnement automatique d'image
Je suis perplexe, Essaye en remplaçant ces lignes :
wh=$(identify $image|awk '{for (i=1;i<=NF;i++) {if($i=="JPEG") print $(i+1)}}')
w=$(cut -dx -f1 <<<$wh)
h=$(cut -dx -f2 <<<$wh)
par celles-ci :
identify $image
wh=$(identify $image|awk '{for (i=1;i<=NF;i++) {if($i=="JPEG") print $(i+1)}}')
echo "wh=$wh="
w=$(echo $wh | cut -dx -f1)
h=$(echo $wh | cut -dx -f2)
Il va y avoir des impressions supplémentaires qui, je l'espère, permettront d'y voir plus clair.
Hors ligne
#11 Le 03/01/2012, à 22:49
- Neko62
Re : [RESOLU] traitement par lot redimensionnement automatique d'image
en remplacant ca donne une site infinie de message du type :
/12_decembre/2005_12_06_Berck/IMG_1120.jpg JPEG 3456x2304 3456x2304+0+0 8-bit DirectClass 4.068MB 0.000u 0:00.000
wh=3456x2304=
redim_2: 28: [[: not found
./12_decembre/2005_12_06_Berck/IMG_1118.JPG JPEG 3456x2304 3456x2304+0+0 8-bit DirectClass 2.379MB 0.000u 0:00.000
......................
Hors ligne
#12 Le 03/01/2012, à 23:02
- pingouinux
Re : [RESOLU] traitement par lot redimensionnement automatique d'image
Une suite infinie, tu exagères peut-être un peu... Il y a tout au plus quelques lignes par photo.
On dirait que la syntaxe bash n'est pas reconnue chez toi. Voici le script complet modifié en conséquence :
#! /bin/bash
rep_orig=~/Photos
rep_dest=~/Photos_modifiees
mkdir -p "$rep_dest"
cd "$rep_orig"
suf=jpg
W=720; H=480
for image in $(find -iname \*.$suf)
do
# Taille de l'image
wh=$(identify "$image"|awk '{for (i=1;i<=NF;i++) {if($i=="JPEG") print $(i+1)}}')
w=$(echo $wh | cut -dx -f1)
h=$(echo $wh | cut -dx -f2)
[ $w -gt $h ] && WH=$W"x"$H || WH=$H"x"$W
rep=$(dirname "$image"); bsn=$(basename "$image")
# Création des nouveaux répertoires si absents
mkdir -p "$rep_dest/$rep"
# Traitement de l'image
convert -resize $WH "$image" "$rep_dest/$rep/$bsn"
done
Hors ligne
#13 Le 03/01/2012, à 23:25
- Neko62
Re : [RESOLU] traitement par lot redimensionnement automatique d'image
Impec !
Merci beaucoup !
Je vais gaver mon Galaxy S2 de clichés !
Bonne soirée
Hors ligne