200817Dez

Photoshop: Eigene Scripts und Panels

Adobe bietet in Photoshop seit Version 7 das Erstellen und Einbinden von eigenen Skripten (Scripts) an. Diese können ganz einfach mit Standard-Skriptsprachen wie JavaScript, VBScript oder AppleScript (Mac OS X) geschrieben werden. Um ein Script in Photoshop benutzen zu können, muss dieses in den Ordner "/Adobe Photoshop CS2/Vorgaben/Skripten" bzw. ab Photoshop CS4 in den Ordner "/Adobe Photoshop CS4/Presets/Scripts" kopiert werden. Anschließend lässt sich das Script einfach in Photoshop über das Menü "Datei > Skripten > Skriptname" ausführen oder auch über Tastaturbefehle starten.
Die Frage ist nun, wofür man eigene Scripts benötigt. Viele Schritte lassen sich in Photoshop über "Aktionen" realisieren — allerdings besteht hierbei die Einschränkung, dass man keine dynamischen Vorgänge erstellen kann. So könnte man beispielsweise keine Aktion erstellen, welche immer die aktuell ausgewählte Ebene über die Ebene darüber verschiebt, da in Aktionen der explizite Name der Ebene aufgenommen wird. Für solche Zwecke kommen dann Skripte zum Einsatz, da diese mit Variablen umgehen können.

Das Tolle an Photoshop-Scripting ist die klare und einfache Struktur der Objekte, die Adobe integriert hat. So besitzt jedes Objekt und jede Eigenschaft eine genaue Position im Photoshop-Objektmodell:

Photoshop Objektmodell

Die Namen der Objekttypen erklären sich im Grunde von selbst. Die späteren Bezeichnungen der einzelnen Objekte sind etwas abgewandelt bzw. spezifiziert, aber dennoch eindeutig. Ein simples Script (JavaScript), welches beispielsweise die aktive Ebene umbenennt und den aktuellen Auswahlbereich mit der Vordergrundfarbe füllt, würde so aussehen:

  • app.activeDocument.activeLayer.name = "Slice";
  • app.activeDocument.selection.fill(app.foregroundColor);

Wie man sieht, ist der Aufbau des Codes sehr einfach und selbsterklärend. Die Namen, Eigenschaften und Methoden aller Objekte kann man übrigens im "Photoshop Scripting Guide" nachlesen, welches zusammen mit anderen Referenzhandbüchern als PDF im Ordner "/Adobe Photoshop CS2/Skript Handbuch" zu finden ist (bei Photoshop CS4 ist es der Ordner "/Adobe Photoshop CS4/Scripting/Documents" und "/Adobe Photoshop CS4/Skript-Dokumente"). Dort finden sich auch etliche Beispielskripte, die man studieren und umbauen kann.
Eine der wichtigsten JavaScript-Funktionen sollte noch erwähnt werden, da sie mögliche Fehlermeldungen unterdrückt: Die "Try-Catch"-Funktion. Wie der Name schon sagt, versucht diese Funktion einen Befehl auszuführen und gibt bei einem Konflikt eine Fehlermeldung aus. Die Fehlermeldung kann man jedoch unterdrücken, so dass Photoshop bei eventuellen Fehlern einfach weiterläuft. Ein Fehler könnte zum Beispiel sein, dass es sich bei der aktuell ausgewählten Ebene nicht um eine Ebene, sondern um eine Ebenengruppe handelt. Wenn man dann versehentlich das Script ausführt, erscheint eine Fehlermeldung. Dies lässt sich umgehen, in dem man "Try-Catch" anwendet:

  • try {
  •   app.activeDocument.activeLayer.name = "Slice";
  • } catch (e) {}

Der Fehlermeldung "e" wird in diesem Fall keine Ausgabefunktion zugewiesen und somit wird sie nicht angezeigt. Am besten lernt man das Schreiben von Scripts, in dem man sich ein Buch (z.B. "Photoshop mit JavaScript steuern") anschaut oder auf dem Forum von PS-Scripts.com stöbert. Eine weitere Hilfe beim Erstellen von Scripts ist der "ScriptListener" — ein kleines Script, welches bei Photoshop mitgeliefert wird. Das Script zeichnet alle möglichen Vorgänge in Photoshop auf und erstellt ein fertiges Script-Protokoll, was dann weiterbenutzt und umgeschrieben werden kann. Der ScriptListener befindet sich bei Photoshop CS4 im Ordner "/Adobe Photoshop CS4/Scripting/Utilities". Um das Script zu aktivieren, muss die Datei "ScriptListener.8li" in den Ordner "/Adobe Photoshop CS4/Plug-ins/Automate" kopiert werden. Nachdem Photoshop neu gestartet wurde, werden nun alle Aktionen aufgezeichnet und in drei Dateien (AppleScript, JavaScript und VBScript — die JavaScript-Datei wäre beispielsweise in "/Dokumente und Einstellungen/Benutzer/Desktop/ScriptListenerJS.log" zu finden) abgespeichert, wo sie weiterbearbeitet werden können. Die Datei "ScriptListener.8li" muss anschließend wieder aus dem Verzeichnis entfernt werden, wenn keine weiteren Vorgänge mehr aufgezeichnet werden sollen.

Photoshop CS4 unterstützt nun auch das Einbinden eigener Panels (Paletten) mit dem Configurator. Dadurch ist es endlich möglich, die Scripts bequem per Button aus der Oberfläche heraus zu starten. Eine weitere Neuerung ist die Möglichkeit, Flash-Panels (SWF-Panles) einzubinden. Durch Flash-Panels ist es möglich, eine Benutzeroberfläche für eigene Scripts zu verwenden und erweiterte Funktionen durch die neue CSXS-SWC-Bibliothek zu benutzen. Wer mehr dazu wissen möchte, sollte sich das Photoshop CS4 SDK herunterladen und dieses Tutorial durchlesen.