AW: Stapelverarbeitung einer Bilderserie aus 2 verschiedenen Ordnern
Also...
Ich hatte mich nun ein wenig in die Thematik eingelesen.
Tatsächlich lässt sich mit simpler JAVA-Programmierung viel in Photoshop automatisieren. Da ich im Moment etwas ausgelastet bin, kann ich hier nun leider nur meine bescheidene Lösung zu speziell meinem oben beschriebenen Problem erklären.
Vielleicht werden dadurch ja noch mehr animiert, und entwickeln die Idee an dieser Stelle weiter...
ALLGEMEIN:
Das kurze Tool ist in Java, bzw ähnlich Action-Script programmiert und greift auf Photoshop-spezifische Funktionen zu. Im Prinzip lassen sich damit ganze Programme samt Benutzeroberfläche erstellen.
TOOL:
In meinem Fall fragt das Tool nach dem Ordner in denen meine gesammten Bilder liegen. Die Reihenfolge meiner Bilder im Ordner sind dabei wie folgt: Bild1, Bild1_occ, Bild2, Bild2_occ, usw.
Das Tool erkennt nun zunächst, wie viele Bilder im angegeben Ordner liegen und durchläuft danach eine For-Schleife, in der immer 2 Bilder (Bild1+Bild1_occ, Bild2+Bild2_occ, usw.) in eine neue Datei in Photoshop auf 2 Layern verteilt eingefügt werden. Bei 400 Bilder die jeweils gepaart werden, habe ich danach 200 Bilder in einzelnen Dateien in Photoshop geöffnet. Diese arbeite ich nun mit der Photoshop-Internen Stapelverarbeitung und einer Aktion ab, speichere damit automatisch alle 200 Bilder und schließe alle am Ende - Fertig!
Es ist wie gesagt sehr rudimentär und natürlich nur auf meinen speziellen Fall ausgelegt, gibt aber hoffentlich ein Paar Ideen - vielleicht entsteht hier ja doch ein umpfangreicheres Tool.
INSTALLATION:
Das kleine Programm kann im Windows-Editor geschrieben werden und muss als *.jsx abgespeichert werden. Entweder führt man es mit einem Doppelklick aus oder man kopiert es in den Script-Ordner von Photoshop (C:\Program Files\Adobe\Adobe Photoshop CS4 (64 Bit)\Presets\Scripts), dann erscheint es in Photoshop unter "Datei -> Skripten -> MeinScript".
So viel zunächst von mir.
LG Hadi
SCRIPT:
-->
Code:
// ----------------------------------------------------------------
#target photoshop
var loadLayersFromScript = true; // must be before Photomerge include
//@includepath "/c/Program Files/Adobe/Adobe Photoshop CS4 (64 Bit)/Presets/Scripts"
//@include "load files into stack.jsx"
//@show include
var workFolder = Folder.selectDialog(); // Dialog wird geöffnet, in dem der Ordner ausgewählt wird
parseFolder(workFolder);
// Bilder in Array laden
------------------------
function parseFolder(folder) {
var folders = folder.getFiles( function( file ) { return file instanceof Folder; } );
var fList = folder.getFiles('*.tif');
for(var i = 0; i < folders.length; i++ ) {
try {
parseFolder(folders[i]);
} catch(err) {
}
}
if (fList.length>0) {
try {
mergeImages(fList);
} catch (err) {
}
}
}
// Hier werden die Fotos Paarweise in Photoshop geladen
-------------------------------------------------------
function mergeImages(fList) {
for(var j=0 ; j<=fList.length ; j=j+2){
var bild1 = fList[j+1];
var bild2 = fList[j];
var stack = [bild1,bild2];
loadLayers.intoStack(stack,false); // eigentliche Photoshop-Funktion
// damit ich später alle Bilder mit einer Aktion bearbeiten kann, sich die Anweisungen in
// der Aktion aber immer auf einen festen Layer-Namen bezieht, werden nun immer alle Layer
// "1" und "2" genannt:
activeDocument.layers[0].name = '1';
activeDocument.layers[1].name = '2';
}
alert('Done! '+(fList.length)/2+' Bilder wurden erstellt');
}
// ----------------------------------------------------------------