Forum Chasseur d'Images - www.chassimages.com

[ FORUM HARD, SOFT & MICRO Photo ] => Espace LINUX, Gimp... => Discussion démarrée par: Neko62 le Janvier 02, 2012, 17:33:43

Titre: traitement par lot redimenssionnment automatique avec structure de dossiers
Posté par: Neko62 le Janvier 02, 2012, 17:33:43
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.
Titre: Re : traitement par lot redimenssionnment automatique avec structure de dossiers
Posté par: diaph34 le Janvier 02, 2012, 17:51:43
Bonjour,

tu veux redimensionner toutes les images des dossiers ou seulement certaines?

Henri
Titre: Re : traitement par lot redimenssionnment automatique avec structure de dossiers
Posté par: Matou le Janvier 02, 2012, 18:31:17
Bonjour,

Pour les traitements batch, gimp propose DBP (David's Batch Processor) mais je n'ai pas trouvé le moyen de lui faire reproduire une arborescence de répertoires. Sauf erreur de ma part, il met tous les fichiers en sortie dans le même répertoire.
Si tu peux écrire un script et utiliser find avec convert et les outils de la famille imagemagick, ce sera plus long au départ mais au moins tout est possible.
Dans ce cas, je sépare les problèmes :
- écrire un script qui prend en arguments le chemin du fichier d'entrée et le chemin du fichier de sortie : ceci traite les questions sur les images, tu peux le tester sur une image à la main.
- écrire un script qui appelle find pour générer la liste des fichiers à traiter. C'est facile à tester, tu mets sa sortie dans more pour avoir le temps de lire.
- écrire un script qui prend la liste des chemins des fichiers d'entrée sur son entrée standard (1 par ligne) et génère sur sa sortie standard les commandes à exécuter : traite.sh chemin_d_entree,jpg chemin_de_sortie.jpg . En général, ce script utilise basename, dirname et sed pour fabriquer chemin_de_sortie à partir de chemin_d_entree . Pour le tester, tu mets la sortie de l'étape 2 dans celui-ci, et tu mets la sortie dans more.

Quand tout est bon, tu mets le résultat dans un shell qui exécute les commandes, et tu vas prendre un café.
Les pièges classiques : la lecture du chemin d'entrée, avec les blancs dans les noms de répertoire "tata Ginette" doit se lire en une seule variable et pas en deux...
Evidemment, si tu es alergique à la ligne de commande, ce n'est pas la peine, mais je ne connais pas l'outil que tu recherches, c'est ma faiblesse. Entre nous, s'il en existe un, je ne cracherai pas dessus le jour où j'en aurai besoin.
Titre: Re : traitement par lot redimenssionnment automatique avec structure de dossiers
Posté par: burdy le Janvier 02, 2012, 21:42:06
Bonjour,

Pour ma part je passe par trois batch (pour un total de 6 lignes dans l'exemple).

La premier (TraiteRepert.bat) qui est sous le répertoire SendTo de Windows permet de traiter les fichiers jpg d'un répertoire (et ses enfants). Il contient les 4 lignes suivantes :
[at] ECHO OFF
[at] %~d1
[at] CD "%~1"
[at] FOR /R %%a IN ("*.jpg") DO  [at] CALL C:\Outils\TraitementsAuto\TraiteRepertoire.bat "%%a"


Il appel TraiteRepertoire.bat qui lance au choix le traitement voulu pour les photos (c'est dans ce batch que je choisi le traitement à appliquer). Par exemple (pour passer les photo au format TVHD) la ligne
[at] CALL C:\Outils\TraitementsAuto\_TraitePhoto.TVHD.bat "%~1"

Enfin le fichier _TraitePhoto.TVHD.bat contient le traitement de conversion (CONVERT => d'ImageMagick) :
CONVERT  -resize "x1080>" -resize "1920>" -quality 85  %1 %1

Avant de lancer un traitement sur une serie de photo je duplique le répertoire (Ctrl+C)(Ctrl+V) et je lance TraiteRepert.bat qui se trouve dans le menu contextuel de Windows.

Et voilou
Cordialement
Titre: Re : traitement par lot redimenssionnment automatique avec structure de dossiers
Posté par: bg1000 le Janvier 03, 2012, 00:56:37
Bonjour

Phatch (http://photobatch.wikidot.com/) ne ferait'il pas l'affaire, mais bon ce n'est pas en ligne de commande

Il y a aussi ImageMagick et GD mais la ligne de commande c'est trop compliqué pour moi.

BG
Titre: Re : traitement par lot redimenssionnment automatique avec structure de dossiers
Posté par: Matou le Janvier 03, 2012, 23:05:09
Bonsoir,

Même si je ne suis pas l'initiateur de ce fil, merci pour l'idée de Phatch : je ne le connaissais pas, mais il paraît intéressant. Je viens de l'installer sur ma Ubuntu 11.04 .
Maintenant, il va falloir dompter ce nouvel outil.
Il est trop tard aujourd'hui, je regarderai un autre jour.

Bonne nuit à tous.
Titre: Re : traitement par lot redimenssionnment automatique avec structure de dossiers
Posté par: captain-alex le Janvier 07, 2012, 04:00:51
Si ton ordinateur fonctionne sous Linux, tu pourras trouvera une liste des logiciels de traitement d'images par lot sur  http://linux.the-photo-box.net/traitement-dimages-par-lots-sous-linux.html (http://linux.the-photo-box.net/traitement-dimages-par-lots-sous-linux.html)
Titre: Re : traitement par lot redimenssionnment automatique avec structure de dossiers
Posté par: makpro le Mars 17, 2012, 12:36:16
Bonjour,

voici un petit script dont je me sers pour redimensionner en petit tous mes jpeg.

Que fais ce script:
1) supprime tous les fichier "*.thumb.jpg"
2) pour chaque fichier jpeg dans un arboresnce, créé un fichier "mon du fichier jpeg" + thumb.jpg

Citation#!/bin/bash

find . -type f -name '*.thumb.jpg' -exec rm '{}' \;
find . -type f -name '*.jpg' |
while read line; do

    thumbnail="$line.thumb.jpg"
    convert -sample 25%x25% +profile '*' "$line" "$thumbnail"

done

Reste plus qu'a l'adapter pour tes besoins de redimentionnement avec la commande convert....et a gérer le mode portait er paysage
Titre: Re : Re : traitement par lot redimenssionnment automatique avec structure de dossiers
Posté par: bedo le Août 27, 2012, 10:07:48
Je confirme que la meilleure solution se basera certainement sur find et/ou un script plus complexe...

find et xargs, ou find qui appelle un script.

D'autre part il m'est arrivé de faire de la dérawtisation par lots en utilisant... un Makefile. Avantage : on peut faire traiter plusieurs images en parallèle par make -j[n].
Citation de: makpro le Mars 17, 2012, 12:36:16
Bonjour,

voici un petit script dont je me sers pour redimensionner en petit tous mes jpeg.

Que fais ce script:
1) supprime tous les fichier "*.thumb.jpg"
2) pour chaque fichier jpeg dans un arboresnce, créé un fichier "mon du fichier jpeg" + thumb.jpg

Reste plus qu'a l'adapter pour tes besoins de redimentionnement avec la commande convert....et a gérer le mode portait er paysage
Titre: Re : traitement par lot redimenssionnment automatique avec structure de dossiers
Posté par: makpro le Août 28, 2012, 13:26:13
Effectivement l'utilisation d'un makefile est une idée astucieuse. Je n'y avais pas pensé. Mais bon, le commun des mortels ne maitrisant pas bien le shell s'il faut qu'ils se mettent au makefile....ca sera ca de moins a faire des photos
Titre: Re : traitement par lot redimenssionnment automatique avec structure de dossiers
Posté par: captain-alex le Novembre 20, 2012, 14:33:11
bonjour,

en effet pour le traitement des photos par lot, il y a Phatch précédemment cité qui est très complet et Picture toolbox plus simple mes efficace. Tu trouvera plus d'information sur ses logiciel sur http://linux.the-photo-box.net/traitement-dimages-par-lots-sous-linux.html (http://linux.the-photo-box.net/traitement-dimages-par-lots-sous-linux.html).

Dans ton cas , j'ai bien peur que pour le moment ( a ma connaissance du moins ;) ) il n'y est pas de logiciel qui respectera ton arborescence de dossiers.
Titre: Re : traitement par lot redimenssionnment automatique avec structure de dossiers
Posté par: rackaam le Novembre 22, 2012, 12:06:40
digikam???!!!??? ???