Artikel von Jens Dittmar - aktualisiert am 21. März 2011 - veröffentlicht am 25. August 2010

Photoshop mit JavaScript automatisieren

Autor: Jens Dittmar

Es gibt verschiedene Möglichkeiten Photoshop zu automatisieren um immer wiederkehrende Aufgaben zu erledigen.Vielen PS-Anwendern dürften die Aktionen bekannt sein. Bei Aktionen werden die genauen Abfolgen von Benutzeraktionen mit allen eingegebenen Werten aufgezeichnet und können auf Knopfdruck wieder abgespielt werden. Somit kann eine Abfolge von Tätigkeiten immer wieder abgerufen werden, ohne dass diese jedes mal neu eingegeben werden muss.

Kombiniert mit der Stapelverarbeitung lassen sich hiermit sehr große Mengen an Bildern einheitlich bearbeiten.

Genau darin liegt aber auch die Schwäche von Aktionen und die Stärke von JavaScript, denn bei Aktionen werden exakt die gleichen Schritte auf die Bilder immer wieder und wieder angewendet. JavaScript hingegen bietet die Möglichkeit, die Bilder auszuwerten und in Abhängigkeit von Eigenschaften, wie z. B. Hochformat oder Querformat, Entscheidungen zu treffen und ganz spezifisch bei den auszuführenden Bildbearbeitungsschritten darauf zu reagieren. In JavaScript hat man die Möglichkeit Entscheidungen zu treffen.

Als Nachteil von JavaScript kann man sehen, dass „programmiert“ werden muss, wohingegen bei Aktionen die ausgeführten Klicks und Eingaben in Photoshop aufgezeichnet werden. Es ist also etwas mehr Arbeit und Einarbeitung nötig.

In Photoshop werden drei verschiedene Arten von Script unterstützt:

  • VBScript (nur auf Windows)
  • AppleScript (nur auf Mac)
  • JavaScript (sowohl auf Windows, als auch auf Mac)

Die Möglichkeiten der Scriptprogrammierung für Photoshop umfassen eigentlich alles, was man auch in Photoshop machen kann. Man kann Größen und Farben verändern; Texte schreiben, Dateien öffnen und speichern; Inhalte kopieren; Metadaten bearbeiten; Ebenen hinzufügen, bearbeiten, umsortieren, ein-/ausblenden, ent-/sperren, entfernen, Pinselstriche, Stempel, einfügen; Auswahlen erstellen, verändern, löschen, bearbeiten; Pfade und Masken lassen sich ebenso ansprechen; und noch vieles, vieles mehr.

Eine sehr interessante Option ist auch, dass man Informationen in eine Datei schreiben oder aus dieser lesen kann. Beispielsweise kann man Metadaten aus einem Bild auslesen und in eine Textdatei schreiben oder auch umgekehrt. Man kann auch dabei Zuordnungslisten verwenden und z. B. bestimmten Bildern anhand einer Zuordnungstabelle einen Aufnahmeort in die Metadaten schreiben, den andere Bilder nicht erhalten sollen.

Zum Erstellen und Bearbeiten von Scripten bietet Adobe das „ExtendScript Toolkit“, welches mit Photoshop mit installiert wird. Das Toolkit bietet verschiedene Hilfestellungen wie Syntaxhighlighting und Vervollständigung von Befehlen. Auch eine umfangreiche Hilfe und vor allem ein Debugger sind enthalten.

Als Beispiel zu diesem Artikel gibt es ein kleines Script (Foto-Howto.jsx), das vom Benutzer folgende Informationen abfragt:

  • Speicherort der Quelldateien (es werden *.TIF verarbeitet)
  • Speicherort für die erzeugten Bildvarianten
  • Webvariante erzeugen
  • Printvariante erzeugen
  • Signatur einfügen

Das Script wird alle *.TIF-Dateien im Quellverzeichnis verarbeiten. Die Orginaldateien dabei aber nicht verändern und auch nicht löschen.

Am Speicherort werden die erzeugten Bilder mit dem gleichen Dateinamen wie zuvor nur jetzt als *.JPG abgelegt. Dabei werden sie auf verschiedene Ordner, den gewählten Varianten entsprechend, verteilt.

Wenn eine Webvariante erstellt werden soll, dann wird diese für das Web optimiert (JPG-Qualität 6) erzeugt und auf einen weißen Rahmen mit den festen Maßen 600×600 Pixeln abgelegt. Die Bilder werden dabei eingepasst, so dass ein 10 Pixel breiter Rand um das Bild herum bleibt. Die Bilder werden dabei aber nicht großskaliert, so dass kleinere Quellbilder einfach mehr Rand erhalten. Somit ist für das Web eine einheitliche Größe (600×600) erreicht, egal ob das Original-Bild zu groß, zu klein, im Hochformat oder im Querformat war. Die Auflösung des Bildes wird auf 96 ppi gesetzt.

Wenn eine Printvariante erstellt werden soll, dann wird die Auflösung auf 300 ppi gesetzt, die Maße des Bildes aber ansonsten nicht verändert um ein möglichst gutes Druckergebnis zu erhalten. Es wird hier auch kein Rahmen hinzugefügt, obwohl das Script darauf vorbereitet ist (es ist einfach ein Rahmen der Größe 0 angegeben).

Wenn eine Signatur eingefügt werden soll, dann wird ein im Script definierter und editierbarer Text in die untere linke Ecke innerhalb des Fotos gesetzt. Dieser Text hat einen Abstand von 10 Pixeln zum Rand des Bildes und einen leichten Schatten. Der Schatten dient hauptsächlich durch eine etwas andere Farbe als der eigentliche Text zur Verbesserung der Lesbarkeit auf unterschiedlichen Hintergründen und zeigt auch im Script die Anwendung eines Filters (Gaußscher-Weichzeichner).

Für die Ausführung des Scripts muss es einfach in den Scriptordner kopiert werden. Dieser variiert bei den verschiedenen Photoshopversionen ein wenig. Bei Photoshop CS4 und CS5 kopiert man das Script in den Ordner „\Presets\Scripts“ im Installationsverzeichnis von Photoshop. Danach kann das Script einfach in Photoshop über das Menü „Datei\Scripten\“ aufgerufen werden.

Resultat nach Verarbeitung durch das Script

Eine weitere Möglichkeit ist es, über das Menü in Photoshop „Datei\Scripten\Durchsuchen“ einen Dialog zum Durchsuchen des Dateisystems aufzurufen und das Script dann dort auszuwählen. Dies muss allerdings dann jedes mal durchgeführt werden, weshalb es einfacher ist, öfters verwendete Scripte, in den dafür vorgesehenen Ordner zu kopieren.

Hier ein kleines Beispiel einer Webvariante mit Signatur. Für die bessere Sichtbarkeit wurde die Hintergrundfarbe vor der Generierung mit dem Script verändert, so dass der Rahmen vor dem weißen Hintergrund von foto-howto.de sichtbar ist.

Ich hoffe, ich konnte den Einen oder Anderen ein wenig neugierig auf die Scriptprogrammierung für Photoshop machen. Es ist ein sehr interessantes, aber auch umfangreiches Thema.

Dokumentation

Bei der Installation von Photoshop wird die wichtigste Dokumentation gleich mit geliefert und kann im Verzeichnis [Installationsverzeichnis PS]\Scripting\Documents gefunden werden. Darin enthalten sind unter Anderem das Dokument „Photoshop CS5 JavaScript Ref.pdf“, welches alle JavaScript relevanten Objekte, Attribute und Methoden beinhaltet, und ein allgemeiner Scripting Leitfaden „Photoshop CS5 Scripting Guide.pdf“, der den Einstieg erleichtert.

Alle diese Dokumente sind auch in den früheren Versionen von Photoshop (ab CS) zu finden und es gibt sie auch im Internet als Download zu finden.

Auch ein deutschsprachiges PDF zur Scriptporgrammierung wird von Adobe mitgeliefert „Photoshop CS5-Handbuch für Skriptprogrammierung.pdf“.

Foren

Ich habe zwei relevante Foren zu JavaScript für Photoshop gefunden. Zum Einen das Forum bei Adobe und zum Anderen auf der Seite www.ps-scripts.com.

Buch

Mit Büchern ist das so eine Sache, denn es gibt zu diesem Thema keine Aktuellen. Das meiner Meinung nach beste Buch, das ich finden konnte, ist „Photoshop mit JavaScript steuern“ , welches aber nur noch gebraucht zu bekommen ist. Dieses Buch bietet einen sehr guten Einstieg sowie anschauliche Erklärungen und Beispiele. Nimmt man zusätzlich die ScriptingReference von Adobe zur Hand hat man alles was man braucht.

Autor des Artikels: Jens Dittmar

Zum Fotografieren kam ich vor einigen Jahren, damals lag mein Hauptinteresse in der Landschaftsfotografie. Im Jahr 2008 entdeckte ich die Makrofotografie für mich und war fortan begeistert von der kleinen Welt überall um uns herum. 2009 habe ich neben der Makrofotografie auch sehr viel Peoplefotografie betrieben und mich mit der Lichtführung intensiver beschäftigt. Zu einem meiner ersten Fotos sagte mein Vater einmal: „Wer fotografiert, lernt sehen.“ Diesen Leitsatz sehe ich in allen Bereichen der Fotografie täglich bestätigt. In der Makrofotografie ist er allerdings am offensichtlichsten.

Webseite von Jens Dittmar | Bei Twitter zu finden als jendit_de
Haben Sie diese Artikel bereits gelesen?
2 Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.