PeeWee84 a écrit :
Bonjour,
Je cherche a trier dans 2 dossiers différents une plétore d'images. D'un côté les images horizontales (largeur > hauteur) et de l'autre les images verticales (hauteur > largeur).
Donc il me faudrait un petit prog qui me fasse ça automatiquement et rapidement
|
[Pré-scriptum: qu'est-ce qu'on fait si hauteur=largeur ?]
Sous Windows, une façon d'y parvenir serait d'utiliser IrfanView (gratuit) en ligne de commande.
Avec le commutateur /info, IrfanView crache toutes les infos d'un fichier image, dont les dimensions, ce qui signifie qu'un batch finement ciselé pourrait faire le boulot. Je suis trop nul en batch dos pour donner la solution mais ce serait un truc du genre dimsort.bat qui débuterait par:
Code :
- @echo off
- ::
- SET IMGTYPE=jpg
- SET SOURCE=D:\test
- SET HDEST=%SOURCE%\horiz
- SET VDEST=%SOURCE%\vert
- SET INFOS=c:\dimsort.txt
- ::
- IF NOT EXIST %SOURCE%\*.%IMGTYPE% GOTO :FIN
- ::
- i_view32.exe %SOURCE%\*.%IMTYPE% /info=%INFOS%
- ::
- :: et maintenant il faut traiter %INFOS%
- :: pour extraire le nom et les dimensions
- :: afin de reloger le fichier au bon endroit
- :: (je sais pas faire, mais aucun pb pour
- :: un batcheur experimente)
- ::
- :: etc. etc.
- :FIN
- ECHO Pressez une touche
- PAUSE>NUL
- EXIT
|
Enfin bon, c'est une piste. Si des programmeurs de la section Batch d'HFR passent dans les parages, ça m'intéresserait beaucoup de voir comment ils procèderaient...
Cela dit, ce serait trivial à finaliser en PHP ou autre langage de script que tu as en local.
Sinon bien sûr il y a une solution bourrin en Scripting Photoshop (inconvénient: PS doit "ouvrir" les images pour consulter les dimensions...). A vue de nez ça donne quelque chose comme ça en Javascript:
Code :
- // Type de fichiers a traiter
- var typeMask = "*.tif"; // ou bien : jpg, psd, etc.
- // Selection du dossier de travail
- var msg = "Choisissez le dossier a trier";
- var sourceFolder = Folder.selectDialog(msg);
- if (sourceFolder != null)
- {
- // Cree des sous-dossiers cibles /horiz et /vertic
- var horizFolder = new Folder(sourceFolder.toString() + "/horiz" );
- if (!horizFolder.exists) horizFolder.create();
- var verticFolder = new Folder(sourceFolder.toString() + "/vertic" );
- if (!verticFolder.exists) verticFolder.create();
- // Liste des fichiers a classer
- var sourceFiles = sourceFolder.getFiles(typeMask);
- var fDoc = null;
- var destPath = "";
- // Process
- for (var i=sourceFiles.length-1 ; i>=0 ; i--)
- if (sourceFiles instanceof File)
- {
- fDoc = open(sourceFiles[i]);
- destPath = ((fDoc.width > fDoc.height) ?
- horizFolder.absoluteURI :
- verticFolder.absoluteURI) +
- "/" + sourceFiles[i].name;
- fDoc.close(SaveOptions.DONOTSAVECHANGES);
- // notez que je fais une copie et pas un deplacement
- // car la methode move n'existe pas !
- sourceFiles[i].copy(destPath);
- }
- }
|
Le code parle de lui-même. Tu le recopies dans un fichier DispatcherSelonDimensions.js et tu installes ça comme d'habitude -- cf. par exemple le [i]lisezmoi de mon script GoldRush, ou la doc Javascript d'Adobe.
Voilà.
Message édité par ACut le 31-12-2005 à 04:48:44
---------------
NOUVEAU! Le guide de l'édition en version ebook : http://marcautret.free.fr/autret/150q-ebook/