Wie lege ich Pipetteneinstellungen mit Photoshop ExtendScript (Javascript) fest?

Gibt es eine Möglichkeit, die Pipetteneinstellungen von Photoshop ( Mustergröße, Muster, Musterring anzeigen ) in einem Skript festzulegen? Oder, falls dies nicht möglich ist, das Skript verwenden, um herauszufinden, was die aktuellen Einstellungen sind? Danke.

Pipetteneinstellungen in Photoshop

Antworten (2)

Basierend auf etwas Googeln scheint es sicher nicht so, als wäre es direkt möglich. Sie können jedoch den Skripting-Listener/Aktionsmanager verwenden, um die Werkzeugvoreinstellung zu ändern.

Also ... vielleicht könnten Sie eine Werkzeugvoreinstellung für jede benötigte Probengröße erstellen und stattdessen die Werkzeugvoreinstellung ändern.

Diese Methode hat einige große Nachteile:

  • Ein Nachteil ist, dass alle Werkzeugeinstellungen für die Pipette gespeichert werden. Wenn Sie also auch andere Sample-Layer-Einstellungen benötigen, müssen Sie noch mehr Voreinstellungen erstellen ...
  • Ganz zu schweigen davon, dass die Werkzeugvoreinstellungsdatei .tplmit dem Skript reisen müsste, oder Sie würden später Probleme bekommen.
  • Ein kleiner Nachteil ist, dass Sie eine Voreinstellung nur auswählen können, wenn zuerst das richtige Werkzeug ausgewählt wird, es sei denn, Ihre Werkzeugvoreinstellungsliste zeigt Voreinstellungen für alle Werkzeuge an, was wahrscheinlich nicht der Fall ist oder Sie nicht davon ausgehen können, dass dies der Fall ist.

Hier ist Code, der das Pipettenwerkzeug auswählt und eine Voreinstellung aktiviert, die ich benannt habe 3 by 3 Average (All Layers).

selectTool("eyedropperTool");
selectToolPreset("3 by 3 Average (All Layers)");

function cTID(s) { return app.charIDToTypeID(s); };
function sTID(s) { return app.stringIDToTypeID(s); };

function selectTool( toolName ) {

  var desc78 = new ActionDescriptor();
    var ref38 = new ActionReference();
    ref38.putClass( sTID( toolName ) );
  desc78.putReference( cTID('null'), ref38 );
  desc78.putBoolean( sTID('dontRecord'), true );
  desc78.putBoolean( sTID('forceNotify'), true );
  executeAction( cTID('slct'), desc78, DialogModes.NO );

};

function selectToolPreset( toolPresetName ) {

  var desc75 = new ActionDescriptor();
    var ref36 = new ActionReference();
    ref36.putName( sTID('toolPreset'), toolPresetName );
  desc75.putReference( cTID('null'), ref36 );
  executeAction( cTID('slct'), desc75, DialogModes.NO );

};

Ich habe das Xtools- Skript: verwendet LastLogEntry.jsx, um den letzten Scripting Listener- Eintrag zu erhalten und ihn ein wenig aufzuräumen.

So erhalten Sie eine aktuelle Einstellung einer Pipette (wechseln Sie zuerst mit Joonas' zur Pipette selectTool()):

//returns 0 for Point Sample, 1 for 3x3, etc
function getCurrentEyedropperSetting() {
    var ref = new ActionReference();
    ref.putProperty(stringIDToTypeID("property"), stringIDToTypeID("tool"));
    ref.putEnumerated(stringIDToTypeID("application"), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum"));
    return executeActionGet(ref).getObjectValue(stringIDToTypeID("currentToolOptions")).getInteger(stringIDToTypeID("eyeDropperSample"));
};