Code:
#target Photoshop
app.bringToFront()
//var hinweis = alert("Bitte den Ordner mit den TIF-Dateien der Sternbilder wählen.\nDanach läuft das Skript automatisiert ab.\n\nEntwickelt von stefu","Hinweis",0)
var hinweisfenster = new Window ('dialog','Starrail Merge', [200,220,560,380]);
hinweisfenster.oben = hinweisfenster.add('panel',[15,10,340,150],'v0.2');
hinweisfenster.oben.hinweis = hinweisfenster.oben.add('statictext',[20,15,300,380],'Dieses Script ist dazu gedacht mehrere Bilder');
hinweisfenster.oben.hinweis2 = hinweisfenster.oben.add('statictext',[20,33,300,380],'im Modus Aufhellen miteinander zu verbinden.');
hinweisfenster.oben.progbar = hinweisfenster.oben.add ('checkbox',[20,85,245,110]);
hinweisfenster.oben.progbar.value = true;
hinweisfenster.oben.progbartext = hinweisfenster.oben.add ('statictext',[40,90,360,110],'Fortschrittsbalken anzeigen');
hinweisfenster.oben.ok = hinweisfenster.oben.add('button',[245,85,280,110],'OK', {name:'ok'});
var ok = hinweisfenster.show() == 1;
hinweisfenster.close()
// Dateien auswählen
try{
var dateien = File.openDialog("Bitte die Bilddateien wählen:","*.tif,*.jpg,*.psd",true)
}
catch (err){
alert("Es ist ein Fehler bei der Dateiauswahl aufgetreten.","Fehler",1)
}
// erste Datei öffnen
try{
myDoc = open(dateien[0]);
}
catch (err){
alert("Die erste Datei konnte nicht geöffnet werden.\nDas Skript wurde unterbrochen.","Fehler",1)
}
//Fortschrittsbalken anzeigen
if (hinweisfenster.oben.progbar.value == true){
var win = new Window("window{text:'Fortschritt',bounds:[100,100,400,150],bar:Progressbar{bounds:[20,20,280,31] , value:0,maxvalue:100}};");
win.show();
}
//Schleife durchlaufen
//Bild öffnen, kopieren und in Ursprungsdokument einfügen und in den Modus "Aufhellen" setzen und Bild wieder löschen
try{
for (var i = 1; i < dateien.length; i++) {
newDoc = open(dateien[i])
newDoc.selection.selectAll()
newDoc.selection.copy()
newDoc.close(SaveOptions.DONOTSAVECHANGES)
myDoc.selection.selectAll()
myDoc.paste()
myLayer = myDoc.artLayers[0]
if (i % 2 == 0) {
myLayer.blendMode = BlendMode.LIGHTEN;
} else {
myLayer.blendMode = BlendMode.DARKEN;
}[/COLOR]
myDoc.flatten()
if (hinweisfenster.oben.progbar.value == true){
win.bar.value = i / dateien.length * 100
WaitForRedraw ()
}
}
if (hinweisfenster.oben.progbar.value == true) { win.close();}
}
catch (err) {
alert("Es ist ein Fehler aufgetreten während der Arbeit beim Bild Nr." + i + "\nDateiname: " + dateien[i].name,"Fehler",1)
}
//Funktion zum warten auf das Fertigzeichnen des Fensters
function WaitForRedraw(){
var eventWait = charIDToTypeID("Wait")
var enumRedrawComplete = charIDToTypeID("RdCm")
var typeState = charIDToTypeID("Stte")
var keyState = charIDToTypeID("Stte")
var desc = new ActionDescriptor()
desc.putEnumerated(keyState, typeState, enumRedrawComplete)
executeAction(eventWait, desc, DialogModes.NO)
}