Antworten auf deine Fragen:
Neues Thema erstellen

[CS3] - Automatisierung: Einstellungsebene relativ ändern & relativ speichern

gh0sthunter

Noch nicht viel geschrieben

Hallo :)

Ich habe ein Bild mit einer Einstellungsebene (Farbton/Sättigung). Ich würde gerne eine Aktion erstellen, die Folgendes macht:
- Erhöhe den"Farbton"-Wert der Einstellungsebene um 5
- Speichere das ganze Bild in einem Ordner mit fortlaufender Nummer (xxx_1.png, xxx_2.png, ...)

Das ganze soll dann ~50 mal (also durch den gesamten Farbbereich) stattfinden. (Mir wäre aber schon geholfen, wenn ich eine Aktion hätte, die ich dann 50 mal nacheinander aufrufen muss.)

Leider finde ich bei den Aktionen keine Möglichkeit, den "Farbton"-Wert relativ zu ändern, er wird höchstens absolut auf einen Wert gesetzt. Ebenso weiß ich nicht, wie ich Photoshop dazu bringe, unter fortlaufender Nummer zu speichern.

Sind Aktionen überhaupt der richtige Ansatz? Es gibt ja 'ne Menge Automatisierungsfunktionen. Skripten kann ich leider nicht.

Ich benutze Photoshop CS3 Extended unter Windows 7 64bit.

Ich hoffe, ihr könnt mir helfen.

Vielen Dank !
 
Zuletzt bearbeitet:

Photoshop

gh0sthunter

Noch nicht viel geschrieben

AW: Automatisierung: Einstellungsebene relativ ändern & relativ speichern

Vielen Dank, ich denke, das hilft mir schon mal weiter.

Bleibt noch das Erhöhen der "Farbton"-Werte.

Der ScriptListener spuckt Folgendes aus:

Code:
var id45 = charIDToTypeID( "setd" );
    var desc12 = new ActionDescriptor();
    var id46 = charIDToTypeID( "null" );
        var ref2 = new ActionReference();
        var id47 = charIDToTypeID( "AdjL" );
        var id48 = charIDToTypeID( "Ordn" );
        var id49 = charIDToTypeID( "Trgt" );
        ref2.putEnumerated( id47, id48, id49 );
    desc12.putReference( id46, ref2 );
    var id50 = charIDToTypeID( "T   " );
        var desc13 = new ActionDescriptor();
        var id51 = charIDToTypeID( "Adjs" );
            var list2 = new ActionList();
                var desc14 = new ActionDescriptor();
                var id52 = charIDToTypeID( "Chnl" );
                var id53 = charIDToTypeID( "Chnl" );
                var id54 = charIDToTypeID( "Cmps" );
                desc14.putEnumerated( id52, id53, id54 );
                var id55 = charIDToTypeID( "H   " );
                desc14.getDouble(id55);
                desc14.putInteger( id55, 5 );
                var id56 = charIDToTypeID( "Strt" );
                desc14.putInteger( id56, 63 );
                var id57 = charIDToTypeID( "Lght" );
                desc14.putInteger( id57, 0 );
            var id58 = charIDToTypeID( "Hst2" );
            list2.putObject( id58, desc14 );
        desc13.putList( id51, list2 );
    var id59 = charIDToTypeID( "HStr" );
    desc12.putObject( id50, id59, desc13 );
executeAction( id45, desc12, DialogModes.NO );
Mein Versuch, die Funktionsweise zu ändern (fehlt letztendlich dann noch 'ne for-Schleife, aber das sollte das geringste Problem sein):
Code:
var id45 = charIDToTypeID( "setd" );
    var desc12 = new ActionDescriptor();
    var id46 = charIDToTypeID( "null" );
        var ref2 = new ActionReference();
        var id47 = charIDToTypeID( "AdjL" );
        var id48 = charIDToTypeID( "Ordn" );
        var id49 = charIDToTypeID( "Trgt" );
        ref2.putEnumerated( id47, id48, id49 );
    desc12.putReference( id46, ref2 );
    var id50 = charIDToTypeID( "T   " );
        var desc13 = new ActionDescriptor();
        var id51 = charIDToTypeID( "Adjs" );
            var list2 = new ActionList();
                var desc14 = new ActionDescriptor();
                var id52 = charIDToTypeID( "Chnl" );
                var id53 = charIDToTypeID( "Chnl" );
                var id54 = charIDToTypeID( "Cmps" );
                desc14.putEnumerated( id52, id53, id54 );
                var id55 = charIDToTypeID( "H   " );
                desc14.getDouble(id55);
[B][COLOR=Red]                desc14.putInteger( id55, desc14.getInteger(id55) + 5 );[/COLOR][/B]
                var id56 = charIDToTypeID( "Strt" );
                desc14.putInteger( id56, 63 );
                var id57 = charIDToTypeID( "Lght" );
                desc14.putInteger( id57, 0 );
            var id58 = charIDToTypeID( "Hst2" );
            list2.putObject( id58, desc14 );
        desc13.putList( id51, list2 );
    var id59 = charIDToTypeID( "HStr" );
    desc12.putObject( id50, id59, desc13 );
executeAction( id45, desc12, DialogModes.NO );
Aber das mag Photoshop nicht und erzählt mir, dass die Funktion getInteger wohl nicht mit der Photoshop-Version kompatibel sei.

Falls mir jemand mit dem Skript weiterhelfen kann oder einen ganz anderen Lösungsansatz hat, wäre ich sehr dankbar.
 

gh0sthunter

Noch nicht viel geschrieben

AW: Automatisierung: Einstellungsebene relativ ändern & relativ speichern

Okay, habe das Problem gelöst. Viel simpler als ich dachte und auch wenn JavaScript != Java haben meine Javakenntnisse völlig ausgereicht.

Code:
for (i=0; i<360; i=i+5){

    var id45 = charIDToTypeID( "setd" );
    var desc12 = new ActionDescriptor();
    var id46 = charIDToTypeID( "null" );
        var ref2 = new ActionReference();
        var id47 = charIDToTypeID( "AdjL" );
        var id48 = charIDToTypeID( "Ordn" );
        var id49 = charIDToTypeID( "Trgt" );
        ref2.putEnumerated( id47, id48, id49 );
    desc12.putReference( id46, ref2 );
    var id50 = charIDToTypeID( "T   " );
        var desc13 = new ActionDescriptor();
        var id51 = charIDToTypeID( "Adjs" );
            var list2 = new ActionList();
                var desc14 = new ActionDescriptor();
                var id52 = charIDToTypeID( "Chnl" );
                var id53 = charIDToTypeID( "Chnl" );
                var id54 = charIDToTypeID( "Cmps" );
                desc14.putEnumerated( id52, id53, id54 );
                var id55 = charIDToTypeID( "H   " );
                desc14.putInteger( id55, i );
                var id56 = charIDToTypeID( "Strt" );
                desc14.putInteger( id56, 63 );
                var id57 = charIDToTypeID( "Lght" );
                desc14.putInteger( id57, 0 );
            var id58 = charIDToTypeID( "Hst2" );
            list2.putObject( id58, desc14 );
        desc13.putList( id51, list2 );
    var id59 = charIDToTypeID( "HStr" );
    desc12.putObject( id50, id59, desc13 );
executeAction( id45, desc12, DialogModes.NO );

var id108 = charIDToTypeID( "save" );
    var desc29 = new ActionDescriptor();
    var id109 = charIDToTypeID( "As  " );
        var desc30 = new ActionDescriptor();
        var id110 = charIDToTypeID( "PGIT" );
        var id111 = charIDToTypeID( "PGIT" );
        var id112 = charIDToTypeID( "PGIN" );
        desc30.putEnumerated( id110, id111, id112 );
        var id113 = charIDToTypeID( "PNGf" );
        var id114 = charIDToTypeID( "PNGf" );
        var id115 = charIDToTypeID( "PGAd" );
        desc30.putEnumerated( id113, id114, id115 );
    var id116 = charIDToTypeID( "PNGF" );
    desc29.putObject( id109, id116, desc30 );
    var id117 = charIDToTypeID( "In  " );
    desc29.putPath( id117, new File( "D:\\bla\\blablabla\\unterordner\\dateiname_"+ i +".png" ) );
    var id118 = charIDToTypeID( "Cpy " );
    desc29.putBoolean( id118, true );
executeAction( id108, desc29, DialogModes.NO );
}
Danke an den ScriptListener und die Hilfe hier im Forum. :)
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.616
Beiträge
1.538.358
Mitglieder
67.536
Neuestes Mitglied
QuestionMark
Oben