Photoshop-Cafe.de :: Dein Photoshop-Forum

Photoshop-Cafe.de :: Dein Photoshop-Forum (https://www.photoshop-cafe.de/forum/index.php)
-   Hilfestellung, Tipps und Tricks (https://www.photoshop-cafe.de/forum/forumdisplay.php?f=30)
-   -   Photoshop Startrail Aktion erstellen (https://www.photoshop-cafe.de/forum/showthread.php?t=20363)

Giovanni Bonnerarte 02.08.15 19:48

Habe im script LIGHTEN mal intuitiv durch DARKEN ersetzt und es läut durch.

Würde gerne alternierend lighten dann darken, bekomme aber immer wieder Syntax-Fehler, Klammer Fehler halt denke ich.

Wie müßte das im script aussehen, ein Bild LIGHTEN, das Nächste DARKEN und wieder von vorne.

Nerve ich...?

;-}

Danke !!!

Das script von Dir ist aber sonst Sahne, Danke!

stefu 02.08.15 19:54

Bau eine Variable als Zähler ein.
Dann if Abfrage.

Wenn gerade dann Lighten.
Wenn ungerade dann Darken.

Giovanni Bonnerarte 02.08.15 21:09

Dein Script:

- - - - - - - - - - -

#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]
myLayer.blendMode = BlendMode.LIGHTEN
myDoc.flatten()
if (hinweisfenster.oben.progbar.value == true){
win.bar.value = i / dateien.length * 100
WaitForRedraw ()
}
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]
myLayer.blendMode = BlendMode.DARKEN
myDoc.flatten()
if (hinweisfenster.oben.progbar.value == true){
win.bar.value = i / dateien.length * 100
WaitForRedraw ()
}
}
if (hinweisfenster.oben.progbar.value == true) { win.close();}
}
}
}
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)
}


- - - - - - - - - - -

...und wie wird das umgebaut...?

Magst Du es mir bauen?

Danke !!!

stefu 03.08.15 10:38

Zitat:

Magst Du es mir bauen?
Nö.

Du hast in der for-Schleife doch eine Variable i.
Hier einfach eine if-Abfrage einbauen wo jetzt
Code:

myLayer.blendMode = BlendMode.LIGHTEN
steht.

Der Syntax für if-else ist:

Code:

if (variable < 1 ) {
    text = "kleiner als eins";
    }
    else {
    text = "eins oder größer als eins";
    }

Und für die Berechnung musst Du nur noch Modulo anwenden, um herauszufenden ob die Zahl gerade ist oder nicht.

Also:
Code:

if (i % 2 == 0) {
    myLayer.blendMode = BlendMode.LIGHTEN;
    } else {
    myLayer.blendMode = BlendMode.DARKEN;
    }

Prinzipiell von der Logik und dem Aufbau ganz simpel.

heikehk 03.08.15 10:54

Die Idee mit der Laufzeitvariablen ist doch super.
Die IF-Abfrage, wie von Stephan beschrieben mit dem modulo (Kannte ich in der Form nicht und habe gegoogelt) ist ideal und sollte klappen. Falls nicht musst Du uns mal die Fehlermeldung geben.

Code:

for (var i = 1; i < dateien.length; i++)
Dann beim Blendmode:
Code:

if (i % 2 == 0) {
    myLayer.blendMode = BlendMode.LIGHTEN;
    } else {
    myLayer.blendMode = BlendMode.DARKEN;
    }


heikehk 03.08.15 18:26

Stephan,

würde das so gehen?
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)
}


stefu 03.08.15 18:48

Das
Code:

[/COLOR]
darf da nicht stehen ;)

Giovanni Bonnerarte 03.08.15 20:53

Hi,

das läuft ohne

[/COLOR]

durch, ohne Fehler.

Das Ergebnis ist aber auch nicht irgendwie wie diese Sachen hier von Matt Malloy...

https://iso.500px.com/author/mattmolloy/

...liegt aber wohl eher an meinen Vorlagen...

;-}

Trotzdem DANKE für eurer beiden Einsatz!

stefu 04.08.15 08:10

Hallo Giovanni!

Ja, das stimmt.
Mit dem Ausgangsmaterial, welches Du mir zugesendet hast, kann es so nicht funktionieren.

Der Urheber zeigt ja auch, wie es konkret funktioniert bei 500px.
https://iso.500px.com/time-stack-photo-tutorial/

Wichtig ist das Ausgangsmaterial.
Du hast mir Bilder zugesendet mit vielen größeren Wolken in überwiegend hellen Flächen.
Wenn Du genau hinsiehst, entdeckst Du, dass sein Ausgangsmaterial komplett anders ist: kleine Wolken, starke Konturen und Kontraste, viel freie Himmelsfläche, gefärbte Wolken dank Morgen- oder Abendstimmung.

Nur mit dem richtigen Ausgangsmaterial, kannst Du zu ähnlichen Ergebnissen kommen.
Und dann gilt es noch den richtigen Abstand zu finden zwischen den Aufnahmen. Das ist nicht so schwer, weil man lieber mehrere Aufnahmen macht, von denen man dann wiederum jede 2. oder 2. sowie 3. löschen kann, um den richtigen Abstand zu gewinnen für den Effekt.

Um etwa gleiche Ergebnisse zu erzielen, braucht man etwa gleiches Material.
Und natürlich auch das Wissen um die Verarbeitung (was der Autor auch teilt).

Doch ich denke, da werden so einige enttäuscht sein, wenn sie es nach dem Video machen, weil viele nicht darauf achten, was für Material verwendet wurde, sondern davon ausgehen, dass es passen muss mit dem eigenen beliebigen Material.

Ich bin mir jedoch sicher, dass Du mit etwas Übung und vor allem geeigneten Material schnell ähnliche Ergebnisse erzielen kannst, denn es ist keine Zauberei.

Lieben Gruß
Stephan

heikehk 04.08.15 09:48

Huch das [/Color] war noch übrig geblieben :)
Freut mich, wenns läuft :ok:


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:47 Uhr.

Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
©2005-2024 photoshop-cafe.de

Seite wurde generiert in 0,02243 Sekunden mit 8 Queries