traitement par lot redimenssionnment automatique avec structure de dossiers

Démarré par Neko62, Janvier 02, 2012, 17:33:43

« précédent - suivant »

Neko62

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.

diaph34

Bonjour,

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

Henri

Matou

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.

burdy

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

bg1000

Bonjour

Phatch 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

Matou

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.

captain-alex

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

makpro

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

bedo

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

makpro

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

captain-alex

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.

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.