Vous êtes sur la page 1sur 87

ADOBE PHOTOSHOPCS5 HANDBUCH FR SKRIPTPROGRAMMIERUNG

2010 Adobe Systems Incorporated. All rights reserved. Adobe Creative Suite5 Photoshop Handbuch fr Skriptprogrammierung Adobe, the Adobe logo, Illustrator, and Photoshop are either registered trademarks or trademarks of Adobe Systems Inc. in the United States and/or other countries. Apple and Mac OS are trademarks of Apple Computer, Inc., registered in the United States and other countries. Microsoft and Windows are either registered trademarks or trademarks of Microsoft Corporation in the United States and other countries. JavaScript and all Java-related marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. All other trademarks are the property of their respective owners. The information in this document is furnished for informational use only, is subject to change without notice, and should not be construed as a commitment by Adobe Systems Inc. Adobe Systems Inc. assumes no responsibility or liability for any errors or inaccuracies that may appear in this document. The software described in this document is furnished under license and may only be used or copied in accordance with the terms of such license. Adobe Systems Inc., 345 Park Avenue, San Jose, California 95110, USA.

Inhalt
1 Einfhrung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Einfhrung in dieses Handbuch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Konventionen in diesem Handbuch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

Photoshop Grundlagen der Skripterstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8


Skripterstellung im berblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Warum Skripten statt Aktionen? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Untersttzung der Skripterstellung in Photoshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 JavaScript-Untersttzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Ausfhren anderer Skripten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Start-Skripten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Ausfhren von JavaScripts aus AS oder VBS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Photoshop-Objektmodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Enthaltenseinshierarchie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Application- und Document-Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Layer-Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Layer Comp-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Channel-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Selection-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . History State-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Document Info-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Path Item-, Sub Path Item- und Path Point-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . Preferences-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Notifier-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Count Item-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Color Sampler-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Measurement Scale-Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Enthaltenseinshierarchie und die Photoshop-Benutzeroberflche . . . . . . . . . . . . . . . . Weitere Objekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Konstanten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen eines Beispielskripts Hello World . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen und Ausfhren eines AppleScripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen und Ausfhren eines VBScripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen und Ausfhren eines JavaScripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 11 12 12 13 13 13 13 13 14 14 14 14 14 14 14 16 16 17 18 19 19

Skripting in Photoshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Anzeigen von Objekten, Befehlen und Methoden in Photoshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Anzeigen des AppleScript-Wrterbuchs von Photoshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Anzeigen der Photoshop Type Library (VBS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Festlegen des Application-Objekts als Ziel und Erstellen von Verweisen . . . . . . . . . . . . . . . . . . . . . . . 22 Erstellen neuer Objekte in einem Skript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Festlegen des aktiven Objekts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Festlegen des aktiven Dokuments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3

Inhalt

Festlegen der aktiven Ebene . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Festlegen der aktiven Kanle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 ffnen eines Dokuments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 ffnen einer Datei mit dem Standarddateiformat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Angeben der zu ffnenden Dateiformate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Speichern eines Dokuments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Festlegen von Anwendungsvoreinstellungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Zulassen oder Verhindern von Dialogfeldern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Arbeiten mit dem Objektmodell von Photoshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verwenden des Application-Objekts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verwenden des Document-Objekts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Manipulieren eines Document-Objekts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Arbeiten mit Layer-Objekten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen eines ArtLayer-Objekts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen eines Layer Set-Objekts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verweisen auf ArtLayer-Objekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Arbeiten mit LayerSet-Objekten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verknpfen von Layer-Objekten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Anwenden von Stilen auf Ebenen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verwenden des Text Item-Objekts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Festlegen einer Ebenenart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Hinzufgen und Manipulieren von Text in einem Text Item-Objekt . . . . . . . . . . . Arbeiten mit Selection-Objekten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen und Definieren einer Auswahl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zuweisen einer Kontur fr die Auswahlbegrenzung . . . . . . . . . . . . . . . . . . . . . . . . . . Umkehren von Auswahlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erweitern und Verkleinern ausgewhlter Bereiche und Hinzufgen weicher Kanten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fllen einer Auswahl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Laden und Speichern von Auswahlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Arbeiten mit Channel-Objekten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ndern von Kanaltypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verwenden des DocumentInfo-Objekts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verwenden von HistoryState-Objekten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verwenden von Notifier-Objekten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verwenden des PathItem-Objekts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Arbeiten mit Color-Objekten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Volltonfarben-Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verwenden von Hexadezimalwerten fr RGB-Farben . . . . . . . . . . . . . . . . . . . . . . . . . Abrufen und Konvertieren von Farben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Vergleichen von Farben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Abrufen einer websicheren Farbe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 34 34 35 36 37 38 38 39 40 40 41 41 42 42 43 44 44 44 45 45 46 46 47 47 48 49 51 52 52 52 53 53

Arbeiten mit Filtern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Sonstige Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Verwenden der Zwischenablage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Verwenden der Befehle zum Kopieren und Einfgen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Verwenden des Befehls/der Methode Auf eine Ebene reduziert kopieren . . . . . . . . . . . . 55

Inhalt

Arbeiten mit Maeinheiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Maeinheitenwerte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Besondere Datentypen fr Maeinheitenwerte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . berlegungen zu Maeinheiten in AppleScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verwenden von Maeinheitenwerten in Berechnungen . . . . . . . . . . . . . . . . . . . . . . Verwendung von Maeinheitenwerten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Festlegen von Lineal- und Texteinheiten in einem Skript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erweiterte Skripterstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Arbeiten mit Voreinstellungen fr Dokumente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Anwenden von Farbe auf ein Textelement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Anwenden eines Schwingungen-Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Definieren des Bereichs eines Auswahlobjekts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Anwenden eines Bewegungsunschrfe-Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

56 56 56 56 57 57 59 60 61 64 66 67 71

JavaScript-Beispiele fr die Automatisierung des Workflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

Action Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
ScriptListener-Zusatzmodul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Installieren von ScriptListener . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Action Manager-Skriptobjekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 Aufzeichnen eines Skripts mit ScriptListener . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 Verwenden des Action Manager aus JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Verwenden des Action Manager aus einem VBS-Skript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Ausfhren von Action Manager-Code auf JavaScript-Basis aus VBScript . . . . . . . . . . . . . . . . . . . . . . . 79 Ausfhren von Action Manager-Code auf JavaScript-Basis aus AppleScript . . . . . . . . . . . . . . . . . . . . 80 Suchen von Ereignis-IDs und Klassen-IDs ber ScriptListener . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

Einfhrung

Einfhrung in dieses Handbuch


Dieses Handbuch bietet eine Einfhrung in die Skripterstellung in Adobe PhotoshopCS5 unter MacOS und Windows. In Kapitel1 werden die grundlegenden Konventionen beschrieben, die in diesem Handbuch gelten. In Kapitel2 erhalten Sie einen kurzen berblick ber die Skripterstellung, das Ausfhren von Skripten und das Objektmodell von Photoshop. In Kapitel3 werden die fr Photoshop spezifischen Objekte und Komponenten behandelt und die erweiterten Skriptingmethoden fr Photoshop beschrieben. Die Beispielcodes werden in drei Skriptsprachen angegeben:

AppleScript VBScript JavaScriptTM

HINWEIS: ber die mit dieser Installation bereitgestellten Skriptreferenzhandbcher stehen fr jede der Sprachen separate Photoshop-Skriptreferenzinformationen zur Verfgung. Diese knnen alternativ auch ber die Objektkataloge zu den einzelnen Sprachen aufgerufen werden. Siehe Anzeigen des AppleScript-Wrterbuchs von Photoshop auf Seite 21 und Anzeigen der Photoshop Type Library (VBS) auf Seite 22. Informationen zum Extend Script Object Model Viewer finden Sie im JavaScript Tools Guide. In Kapitel4 wird der Action Manager beschrieben, mit dem Sie Skripten fr Photoshop-Funktionen schreiben knnen, die in der Skripting-Oberflche sonst nicht zugnglich sind. HINWEIS: Beachten Sie auch die Datei Bitte lesen, die im Lieferumfang von Photoshop enthalten ist. Dort finden Sie aktuellste Informationen, Skriptbeispiele und Informationen zu Problemlsungen.

Konventionen in diesem Handbuch


Code und spezifische Sprachbeispiele sind in nicht-proportionaler Courier-Schrift formatiert:
app.documents.add

Bei AppleScript, VBScript und JavaScript gelten mehrere Konventionen. Folgende Abkrzungen werden verwendet:

AS steht fr AppleScript. VBS steht fr VBScript. JS steht fr JavaScript.

Der Begriff Befehle bezieht sich sowohl auf Befehle in AppleScript als auch auf Methoden in VBScript und JavaScript.

KAPITEL 1: Einfhrung

Konventionen in diesem Handbuch 7

Wenn in diesem Handbuch bestimmte Eigenschaften und Befehle genannt werden, gelten dabei die Namenskonventionen von AppleScript fr die jeweilige Eigenschaft. Die Entsprechungen in VBScript und JavaScript werden in Klammern angegeben. Beispiel: Die Eigenschaft display dialogs (DisplayDialogs/displayDialogs) ist Teil des Application-Objekts. In diesem Fall ist display dialogs die AppleScript-Eigenschaft, DisplayDialogs die VBScript-Eigenschaft und displayDialogs die JavaScript-Eigenschaft. Bei umfangreicheren Codeblcken werden die Skriptbeispiele in separaten Zeilen angegeben.

AS
layer 1 of layer set 1 of current document

VBS
appRef.ActiveDocument.LayerSets(1).Layers(1)

JS
app.activeDocument.layerSets[0].layers[0]

In manchen Fllen werden Wertelisten entsprechend den Skriptsprachen tabellarisch organisiert.

Photoshop Grundlagen der Skripterstellung


Dieses Kapitel bietet einen berblick ber die Erstellung von Skripten fr Photoshop sowie eine Beschreibung der Untersttzung fr die Skriptsprachen AppleScript, VBScript und JavaScript. Auerdem erhalten Sie Informationen ber das Ausfhren von Skripten und ber das Photoshop-Objektmodell. Anhand eines einfachen Beispiels wird demonstriert, wie Sie ein erstes Photoshop-Skript schreiben knnen. Wenn Sie bereits mit Skripten oder Programmiersprachen gearbeitet haben, knnen Sie wahrscheinlich einen Groteil dieses Kapitels berspringen. Sie knnen sich an folgender Liste orientieren, um die fr Sie relevanten Informationen einzugrenzen.

Informationen zum Objektmodell von Photoshop finden Sie unter Photoshop-Objektmodell auf Seite 11. Informationen ber das Auswhlen einer Skriptsprache finden Sie im Handbuch Introduction to Scripting. Beispiele fr Skripten, die speziell fr Photoshop entwickelt wurden, finden Sie in Kapitel3, Skripting in Photoshop auf Seite 21. Ausfhrliche Informationen zu den Objekten und Befehlen in Photoshop finden Sie in den Referenzinformationen der drei Handbcher, die zu dieser Installation gehren: Adobe PhotoshopCS5 AppleScript Scripting Reference, Adobe PhotoshopCS5 Visual Basic Scripting Reference und Adobe PhotoshopCS5 JavaScript Scripting Reference.

HINWEIS: Informationen ber die Objekte und Befehle in Photoshop knnen Sie fr jede der drei Skriptsprachen auerdem ber die Objektkataloge abrufen. Siehe Anzeigen von Objekten, Befehlen und Methoden in Photoshop auf Seite 21.

Skripterstellung im berblick
Ein Skript ist eine Reihe von Befehlen, mit denen Photoshop angewiesen wird, bestimmte Aktionen auszufhren, etwa verschiedene Filter auf ausgewhlte Elemente im geffneten Dokument anzuwenden. Hierbei kann es sich um einfache Aktionen handeln, die nur ein einzelnes Objekt betreffen, oder um komplexe Operationen, die sich auf viele Objekte in einem Photoshop-Dokument auswirken. Die Aktionen knnen auf Photoshop begrenzt sein oder auch andere Anwendungen aufrufen. Skripten dienen der Automatisierung sich wiederholender Aufgaben und werden oft als kreatives Werkzeug eingesetzt, um Aufgaben zu rationalisieren, deren manuelle Ausfhrung zu zeitaufwendig wre. Sie knnten z.B. ein Skript erstellen, um eine Reihe lokalisierter Versionen eines bestimmten Bildes zu erstellen oder um Informationen ber die verschiedenen Farbprofile einer Sammlung von Bildern zusammenzustellen. Wenn Sie mit der Skripterstellung noch nicht vertraut sind, sollten Sie die grundlegenden Informationen im Handbuch Introduction to Scripting lesen.

Warum Skripten statt Aktionen?


Wenn Sie bereits Photoshop-Aktionen verwendet haben, dann sind Ihnen die groen Vorteile der Automatisierung repetitiver Aufgaben bekannt. Mit Skripten knnen Sie diese Vorteile erheblich erweitern, da sich Funktionen einsetzen lassen, die in Photoshop-Aktionen nicht verfgbar sind. Folgende Aufgaben knnen Sie beispielsweise mit Skripten automatisieren, nicht jedoch mit Aktionen:

Sie knnen Bedingungslogik einsetzen, sodass das Skript je nach vorliegender Situation automatisch Entscheidungen trifft. Beispiel: Sie knnen ein Skript erstellen, das je nach Gre eines ausgewhlten Bildbereichs eine andersfarbige Umrandung hinzufgt: Wenn der ausgewhlte Bereich kleiner als 2x4Zoll ist, grne Umrandung hinzufgen; andernfalls rote Umrandung hinzufgen.
8

KAPITEL 2: Photoshop Grundlagen der Skripterstellung

Untersttzung der Skripterstellung in Photoshop

Sie knnen mit einem einzigen Skript Aktionen ausfhren, an denen mehrere Anwendungen beteiligt sind. Beispielsweise ist es je nach verwendeter Skriptsprache mglich, sowohl Photoshop als auch eine andere Anwendung der Adobe Creative Suite5, z.B. Adobe IllustratorCS5, von demselben Skript aus anzusteuern. Sie knnen Dateien mit Skripten ffnen, speichern und umbenennen. Sie knnen Skripten von einem Computer auf einen anderen kopieren. Wenn Sie eine Aktion verwenden und dann den Computer wechseln, mssen Sie dagegen die Aktion neu erstellen. Skripten sind flexibler beim automatischen ffnen von Dateien. Wenn Sie eine Datei ber eine Aktion ffnen, mssen Sie den Speicherort der Datei hartcodieren. In einem Skript knnen Sie dagegen Variablen fr die Dateipfade verwenden.

HINWEIS: Weitere Informationen zu Photoshop-Aktionen finden Sie in der Online-Hilfe von Photoshop.

Untersttzung der Skripterstellung in Photoshop


Photoshop untersttzt die Skripterstellung in drei Skriptsprachen: AppleScript, VBScript und JavaScript. AppleScript und JavaScript knnen unter MacOS ausgefhrt werden, JavaScript und VBScript unter Windows. Informationen zum Auswhlen der geeigneten Skriptsprache sowie ergnzende Informationen zum Einsatz dieser Sprachen mit Adobe-Anwendungen finden Sie im Handbuch Introduction to Scripting. Siehe Erstellen und Ausfhren eines AppleScripts auf Seite 18, Erstellen und Ausfhren eines VBScripts auf Seite 19 und Erstellen und Ausfhren eines JavaScripts auf Seite 19. Sie knnen JavaScript-Skripten aus AppleScript- und VBScript-Skripten aufrufen. Siehe Ausfhren von JavaScripts aus AS oder VBS auf Seite 10. Damit eine Datei von Photoshop als gltige Skriptdatei erkannt wird, ist eine korrekte Dateinamenerweiterung erforderlich: Skripttyp AppleScript JavaScript ExtendScript VBScript Visual Basic Dateityp kompilierte SkriptOSAS-Datei Text Text ausfhrbar Erweiterung
.scpt (ohne) .js .jsx .vbs .exe

Plattform MacOS MacOS und Windows Windows Windows

JavaScript-Untersttzung
Eine JavaScript-Datei wird von Photoshop als gltige Skriptdatei erkannt, wenn sie die Erweiterung .js oder .jsx hat. Unter MacOS besteht hinsichtlich der Funktionsweise von Skripten mit den beiden Erweiterungen kein Unterschied. Unter Windows hat die Erweiterung .js dieselbe Wirkung wie die Erweiterung .jsx, wenn die Skriptdateien aus Photoshop heraus geffnet werden. Beim Starten von Skripten per Doppelklick werden Skripten mit der Erweiterung .js jedoch mit der JScript-Engine von Microsoft interpretiert; Photoshop kann auf diese Weise nicht gestartet werden. Unter Windows empfiehlt es sich, die Erweiterung .jsx zu verwenden, da das Skript dann mit der ExtendScript-Engine interpretiert wird.

KAPITEL 2: Photoshop Grundlagen der Skripterstellung

Untersttzung der Skripterstellung in Photoshop

10

In JavaScript geschriebene Skripten knnen ber das Men Skripten von Adobe Photoshop (Datei> Skripten) aufgerufen werden. Sie haben damit schnellen und einfachen Zugriff auf Ihre JavaScripts. Wenn eine JavaScript-Datei im entsprechenden Verzeichnis auf der Festplatte abgelegt wird, kann direkt ber das Photoshop-Men darauf zugegriffen werden. Um ein JavaScript im Men Skripten zu installieren, platzieren Sie es im Ordner Skripten (PhotoshopCS5\Vorgaben\Skripten). Die Namen der Skripten im Ordner Skripten werden ohne die Dateinamenerweiterung im Men Skripten angezeigt. Im Men Skripten kann eine beliebige Anzahl von Skripten installiert werden. Wenn whrend der Ausfhrung von Photoshop Skripten in den Ordner Skripten eingefgt werden, sind diese Skripten erst nach dem nchsten Start der Anwendung im Men Skripten sichtbar. Alle Skripten aus dem Ordner Skripten und aus dessen Unterordnern werden auf der obersten Ebene des Mens Datei> Skripten angezeigt. Wenn Unterordner hinzugefgt werden, entsteht dadurch im Men Skripten keine hierarchische Struktur.

Ausfhren anderer Skripten


ber den Befehl Durchsuchen unten im Men Skripten (Datei> Skripten> Durchsuchen) knnen Sie Skripten ausfhren, die nicht im Ordner Skripten installiert sind. Sie knnen mit dem Befehl Durchsuchen auch Skripten auswhlen, die nach dem letzten Start der Anwendung im Ordner Skripten installiert wurden. Wenn Sie auf Durchsuchen klicken, wird ein Dateibrowser-Dialogfeld angezeigt, in dem Sie eine Skriptdatei fr die Ausfhrung auswhlen knnen. Im Dialogfeld Durchsuchen werden nur Dateien mit der Erweiterung .js oder .jsx angezeigt. Wenn Sie eine Skriptdatei auswhlen, erfolgt die Ausfhrung genau wie bei einem installierten Skript.

Start-Skripten
Beim Starten von Photoshop werden alle in den Startordnern gefundenen .jsx-Dateien ausgefhrt.

Unter Windows ist dies der Startordner fr benutzerdefinierte Skripten:


C:\Program Files\Common Files\Adobe\Startup Scripts CS5\Adobe Photoshop

Unter MacOS ist dies der Startordner fr benutzerdefinierte Skripten:


~/Library/Application Support/Adobe/Startup Scripts CS5/Adobe Photoshop

Wenn sich Ihr Skript in diesem Basisstartordner befindet, wird es auch beim Start von allen anderen Anwendungen der Adobe Creative Suite5 ausgefhrt. Wenn ein solches Skript nur von Photoshop ausgefhrt werden soll, muss es Code wie den folgenden enthalten:
if( BridgeTalk.appName == "photoshop" ) { //continue executing script }

Weitere Einzelheiten hierzu finden Sie im Handbuch JavaScript Tools Guide.

Ausfhren von JavaScripts aus AS oder VBS


Sie knnen JavaScripts aus AppleScript oder VBScript ausfhren und so plattformunabhngige Skripten erstellen. Dabei knnen Sie entweder einzelne JavaScript-Anweisungen oder eine vollstndige JavaScript-Datei ausfhren. Weitere Informationen finden Sie im Handbuch Introduction to Scripting.

KAPITEL 2: Photoshop Grundlagen der Skripterstellung

Photoshop-Objektmodell

11

Photoshop-Objektmodell
Ein Dokumentobjektmodell (DOM) ist eine Anwendungsprogrammierschnittstelle (Application Programming Interface, API), die ber eine Skriptsprache Programmierzugriff auf verschiedene Komponenten eines Dokuments (gem Definition fr die jeweilige Anwendung) ermglicht. Weitere Informationen ber Adobe-Objektmodelle und untersttzende Skriptsprachen finden Sie im Handbuch Introduction to Scripting. Das Photoshop-DOM besteht aus einer hierarchischen Darstellung der Photoshop-Anwendung mit den darin verwendeten Dokumenten samt zugehrigen Komponenten. ber das DOM haben Sie programmiertechnischen Zugriff auf das Dokument sowie auf seine Komponenten und knnen Bearbeitungen daran vornehmen. Sie knnen ber das DOM beispielsweise ein neues Dokument erstellen, einem vorhandenen Dokument eine Ebene hinzufgen oder die Hintergrundfarbe einer Ebene ndern. Die meisten Funktionen, die ber die Benutzeroberflche von Photoshop zur Verfgung stehen, sind ber das DOM zugnglich. Adquate Kenntnisse ber das DOM von Photoshop und darber, wie die einzelnen Aspekte des DOM mit der Photoshop-Anwendung und den zugehrigen Dokumenten zusammenhngen, erleichtern das Schreiben von Skripten.

Enthaltenseinshierarchie
Das Photoshop-Objektmodell ist eine Enthaltenseinshierarchie, d.h. Objekte im Modell werden teilweise anhand der bergeordneten Objekte identifiziert, in denen sie enthalten sind. In Photoshop steht an der Spitze der Hierarchie das Objekt Application (Anwendung). Anwendungen enthalten eine Sammlung von Dokumenten (Documents). Die Dokumentsammlung enthlt Document-Objekte. Ein Document-Objekt enthlt eine ArtLayers-Sammlung, eine HistoryStates-Sammlung, eine Layers-Sammlung, eine Layersets-Sammlung und eine Channels-Sammlung. ber Befehle bzw. Methoden im DOM knnen Sie in einem Photoshop-Dokument Objekte hinzufgen oder entfernen und einzelne Objekteigenschaften wie Farbe, Gre und Form ndern. Im Diagramm unten steht jeder Knoten in der Hierarchie fr eine Klasse im Photoshop-DOM. Im Photoshop-Objektmodell dienen Elemente (AppleScript) bzw. Sammlungen (VBScript, JavaScript) zum unkomplizierten Gruppieren von Klassen. Objektelemente und Sammlungen sind in der Darstellung des Objektmodells unten nicht aufgefhrt. Nicht alle Klassen sind mit einer Sammlung verknpft. Einige Schlsselklassen sind jedoch nach Elementen bzw. Sammlungen gruppiert. In Photoshop gibt es die folgenden Elemente/Sammlungen: Art Layers, Channels, Color Samplers, Count Items, Documents, Layers, Layer Comps, Layer Sets, History States, Notifiers, Path Items, Path Points Sub Path Items und Text Fonts. Weitere Informationen zu Elementen und Sammlungen finden Sie im Handbuch Introduction to Scripting. HINWEIS: In Photoshop beginnt der Index von VBScript-Sammlungen mit 1 statt mit 0. Er weicht damit von anderen VBScript-Arrays ab, bei denen der Index mit 0 beginnt.

KAPITEL 2: Photoshop Grundlagen der Skripterstellung

Photoshop-Objektmodell

12

Enthaltenseinshierarchie von Photoshop (nur Schlsselklassen sind aufgefhrt)

Application

Notifier

Document

Preferences

Selection

Channel

Layer Comp

Count Item

Color Sampler

Measurement Scale

Document Info

History State

Path Item

Art Layer

Layer Set

Sub Path Item Path Point

Text Item (Object)

Layer Set

Art Layer

Application- und Document-Klassen


Die Application-Klasse ist der Ausgangspunkt der Photoshop-Objektmodellhierarchie. Skripten knnen nur korrekt ausgefhrt werden, wenn die richtige Zielanwendung festgelegt ist. Siehe Festlegen des Application-Objekts als Ziel und Erstellen von Verweisen auf Seite 22. Die Document-Klasse wird verwendet, um nderungen am Dokumentbild vorzunehmen. Mit dem Document-Objekt knnen Sie die Arbeitsflche freistellen, drehen oder spiegeln, die Gre des Bildes oder der Arbeitsflche anpassen oder das Bild zuschneiden. Sie haben mit dem Document-Objekt auerdem die Mglichkeit, die aktive Ebene abzurufen, dann das aktuelle Dokument zu speichern und innerhalb des aktiven Dokuments oder zwischen verschiedenen Dokumenten zu kopieren und einzufgen. Weitere Informationen zur Verwendung von Document-Objekten finden Sie unter Erstellen neuer Objekte in einem Skript auf Seite 23 und Verwenden des Document-Objekts auf Seite 34.

Layer-Klassen
Es gibt in Photoshop zwei Arten von Ebenen: ein Art Layer (Grafikebene) kann Bildinhalte aufnehmen; ein Layer Set (Ebenenset) kann entweder keinerlei Grafikebenen oder aber mehrere Grafikebenen enthalten. Ein Art Layer ist eine Ebenenklasse in einem Dokument. Sie haben damit die Mglichkeit, ein Objekt im Bild ohne Auswirkungen auf andere Objekte zu bearbeiten. Bilder setzen sich normalerweise aus mehreren Ebenen zusammen, die durch ein Layer Set definiert sind. Sie knnen die Bildkomposition verndern, indem Sie Anordnung und Attribute der beteiligten Ebenen ndern. Ein Text Item (Textelement) ist eine bestimmte Art von Grafikebene, die Ihnen das Einfgen von Text in ein Bild ermglicht. In Photoshop wird ein Text Item-Objekt als eine Eigenschaft der Grafikebene implementiert. Weitere Informationen zu Textelementen finden Sie unter Verwenden des Text Item-Objekts auf Seite 41.

KAPITEL 2: Photoshop Grundlagen der Skripterstellung

Photoshop-Objektmodell

13

Ein Layer Set ist eine Klasse, die aus mehreren Ebenen besteht. Das Ebenenset ist vergleichbar mit einem Ordner auf dem Desktop bzw. Schreibtisch. Ordner knnen andere Ordner enthalten; analog dazu sind Ebenensets rekursiv: Ein Ebenenset kann ein anderes Ebenenset in der Objektmodellhierarchie aufrufen. Weitere Informationen zu Ebenen finden Sie unter Arbeiten mit Layer-Objekten auf Seite 36.

Layer Comp-Klasse
Die Layer Comp-Klasse ermglicht es Ihnen, mehrere Versionen eines Layouts in einem einzigen Dokument zu erstellen, zu verwalten und anzuzeigen

Channel-Klasse
Die Channel-Klasse wird verwendet, um Pixelinformationen ber eine Bildfarbe zu speichern. Je nach Bildfarbe steht eine unterschiedliche Anzahl von Kanlen zur Verfgung. Ein RGB-Bild hat z.B. vier Standardkanle: jeweils einen Kanal fr jede Primrfarbe sowie einen Kanal fr die Bearbeitung des gesamten Bildes. Sie knnen wahlweise etwa den Rot-Kanal aktivieren, um nur die roten Pixel im Bild zu bearbeiten, Sie knnen aber auch alle Kanle gleichzeitig einer Bearbeitung unterziehen. Derartige Kanle sind mit dem Dokumentmodus verwandt und werden als Komponentenkanle bezeichnet. Sie haben in Photoshop die Mglichkeit, ber die Komponentenkanle hinaus weitere Kanle zu erstellen. Sie knnen einen Volltonfarbenkanal, einen Kanal fr einen maskierten Bereich und einen Kanal fr einen ausgewhlten Bereich erstellen. Mit den Befehlen bzw. Methoden eines Channel-Objekts knnen Sie Kanle erstellen, lschen und duplizieren. Sie haben auerdem die Mglichkeit, das Histogramm eines Kanals abzurufen, den Kanaltyp zu wechseln oder die aktuelle Kanalauswahl zu ndern. Weitere Informationen zu Kanlen finden Sie unter Arbeiten mit Channel-Objekten auf Seite 46.

Selection-Klasse
Die Selection-Klasse dient zum Festlegen eines zu bearbeitenden Pixelbereichs im aktiven Dokument (oder auf einer ausgewhlten Ebene des aktiven Dokuments). Weitere Informationen zu Auswahlen finden Sie unter Arbeiten mit Selection-Objekten auf Seite 42.

History State-Klasse
Die History State-Klasse ist ein Palettenobjekt, mit dem die an einem Dokument vorgenommenen nderungen verfolgt werden. Jedes Mal, wenn Sie ein Bild ndern, wird der neue Zustand des Bildes als Protokollobjekt zur Palette hinzugefgt. Die verschiedenen Bildzustnde lassen sich per Document-Objekt abrufen und knnen zum Zurcksetzen des Dokuments in einen frheren Zustand verwendet werden. Ein Protokollobjekt kann auerdem zum Fllen einer Auswahl verwendet werden. Weitere Informationen zu Protokollobjekten finden Sie unter Verwenden von HistoryState-Objekten auf Seite 47. HINWEIS: Wenn Sie in AppleScript ein Dokument erstellen und dann unmittelbar danach versuchen, den Zustand abzurufen, gibt Photoshop einen Fehler zurck. Sie mssen zunchst Photoshop aktivieren, also zur Anwendung im Vordergrund machen, bevor Sie auf Protokollobjekte zugreifen knnen.

Document Info-Klasse
Die Document Info-Klasse speichert Metadaten ber ein Dokument. Metadaten sind alle Daten, mit denen Inhalte oder Eigenschaften einer Datei beschrieben werden knnen. Weitere Informationen zu Dokumentinformationen finden Sie unter Verwenden des DocumentInfo-Objekts auf Seite 47.

KAPITEL 2: Photoshop Grundlagen der Skripterstellung

Photoshop-Objektmodell

14

Path Item-, Sub Path Item- und Path Point-Klasse


Die Path Item-Klasse enthlt Informationen ber ein Zeichnungsobjekt, z.B. die Kontur einer Form oder eine Kurve. Die in der Path Item-Klasse enthaltene Sub Path Item-Klasse stellt die eigentliche Geometrie der Form dar. Die Path Point-Klasse enthlt Informationen ber jeden Punkt in einem Unterpfad. Siehe Verwenden des PathItem-Objekts auf Seite 49.

Preferences-Klasse
Die Preferences-Klasse ermglicht es Ihnen, Benutzervoreinstellungen abzurufen und festzulegen. Siehe Arbeiten mit Voreinstellungen fr Dokumente auf Seite 61.

Notifier-Klasse
Das Notifier-Objekt verknpft ein Ereignis mit einem Skript. Wenn Photoshop z.B. beim Starten der Anwendung automatisch ein neues Dokument erstellen soll, knnen Sie ein Skript verknpfen, das fr ein Open Application-Ereignis ein Document-Objekt erstellt. Weitere Informationen zu Notifiern finden Sie unter Verwenden von Notifier-Objekten auf Seite 48.

Count Item-Klasse
Das Count Item-Objekt untersttzt die Skripterstellung fr das Zhlungswerkzeug.

Color Sampler-Klasse
Das Color Sampler-Objekt untersttzt die Skripterstellung fr das Farbaufnahme-Werkzeug.

Measurement Scale-Klasse
Das Measurement Scale-Objekt untersttzt die Skripterstellung fr die neue Messskala-Funktion, mit der Sie eine Skala fr Ihr Dokument festlegen knnen.

Die Enthaltenseinshierarchie und die Photoshop-Benutzeroberflche


In der folgenden Tabelle wird beschrieben, in welcher Beziehung die einzelnen Objekte zur Benutzeroberflche von Photoshop stehen. Objekt Application Document Beschreibung Die Photoshop-Anwendung. Das Arbeitsobjekt, in dem Sie Ebenen, Kanle, Aktionen usw. erstellen. In einem Skript benennen, ffnen und speichern Sie ein Dokument genauso, wie Sie dies mit einer Datei in der Anwendung tun. Der ausgewhlte Bereich einer Ebene oder eines Dokuments. So erstellen Sie das Objekt ohne Skript Starten Sie die Photoshop-Anwendung. Whlen Sie in Photoshop Datei> Neu oder Datei> ffnen.

Selection

Whlen Sie das Auswahlrechteck oder das Lasso und ziehen Sie mit der Maus.

KAPITEL 2: Photoshop Grundlagen der Skripterstellung

Photoshop-Objektmodell

15

Objekt Path Item

Beschreibung Ein Zeichnungsobjekt, z.B. die Kontur einer Form, eine gerade Linie oder eine Kurve. Pixelinformationen ber eine Bildfarbe.

So erstellen Sie das Objekt ohne Skript Whlen Sie das Pfadauswahl-Werkzeug oder den Zeichenstift und ziehen Sie einen Pfad mit der Maus. Whlen Sie Fenster> Kanle.

Channel Art Layer

Eine Ebenenklasse in einem Dokument, die es Whlen Sie Ebene> Neu> Ebene oder Ihnen ermglicht, ein Element im Bild ohne Fenster> Ebenen. Auswirkungen auf andere Elemente zu bearbeiten. Eine Gruppe von Art Layer-Objekten. Gruppe ist der aktuelle Name in der Photoshop-Benutzeroberflche. Ebenenset war der in einer frheren Version verwendete Name. Der Objektname bleibt zur Erhaltung der Rckwrtskompatibilitt gleich. Ein Schnappschuss des Ebenenstatus in einem Dokument. Whlen Sie Ebene> Neu> Gruppe.

Layer Set

Layer Comp

Whlen Sie Fenster> Ebenenkomp. Klicken Sie dann auf das Symbol zum Erstellen einer neuen Ebenenkomposition. Whlen Sie Datei> Dateiinformationen.

Document Info

Metadaten ber ein Document-Objekt. HINWEIS: Metadaten sind alle Daten, mit denen Inhalte oder Eigenschaften einer Datei beschrieben werden knnen, z.B. Dateiname, Erstellungsdatum, Name des Autors, Name des in der Datei gespeicherten Bildes usw. Benachrichtigt ein Skript, wenn ein Ereignis auftritt. Das Ereignis lst dann die Ausfhrung des Skripts aus. Beispiel: Wenn ein Anwender auf die Schaltflche OK klickt, teilt das notifier-Objekt dem Skript mit, welche Operation folgen soll. Dies sind die Anwendungsvoreinstellungen.

Notifier

Whlen Sie Datei> Skripten> Skriptereignis-Manager.

Preferences

Whlen Sie unter Windows Bearbeiten> Voreinstellungen bzw. unter MacOS Photoshop> Voreinstellungen.

History State

Whlen Sie Fenster> Protokoll und Speichert eine Version des Dokuments in dem Status, in dem es jeweils beim Speichern vorlag. whlen Sie anschlieend einen Status aus der Protokollpalette. HINWEIS: Sie knnen mit dem History State-Objekt ein Selection-Objekt fllen oder ein Dokument auf einen frheren Status zurcksetzen. Whlen Sie das Farbaufnahme-Werkzeug aus und klicken Sie in das Dokument. Whlen Sie das Zhlungswerkzeug aus und klicken Sie in das Dokument. Das Measurement Scale-Objekt kann nicht erstellt werden, ber Analyse> Messskala> Benutzerdefiniert haben Sie jedoch die Mglichkeit, die zugehrigen Eigenschaften zu ndern.

Color Sampler Stellt einen Farbaufnehmer in Ihrem Dokument dar. Count Item Stellt ein gezhltes Element im Dokument dar.

Measurement Stellt die Messskala fr Ihr Dokument dar. Scale

KAPITEL 2: Photoshop Grundlagen der Skripterstellung

Photoshop-Objektmodell

16

Weitere Objekte
Das Photoshop-Objektmodell enthlt ber die oben im Abschnitt zur Enthaltenseinshierarchie beschriebenen Objekte hinaus weitere Objekte. Die meisten dieser Klassen werden als Typen fr Eigenschaften oder zum Bereitstellen von Informationen (als Argumente) fr Befehle bzw. Methoden verwendet. Beispiel:

Die Klasse color value (SolidColor/SolidColor) gibt den Typ fr die Eigenschaften background color (backgroundColor/backgroundColor) und foreground color (ForegroundColor/foregroundColor) des Application-Objekts an. Siehe Arbeiten mit Color-Objekten auf Seite 51. Optionen zum ffnen und Speichern von Dokumenten werden als Klassen definiert. Diese Klassen werden an die Befehle bergeben, die Dokumente ffnen und speichern. Die Klasse BMP save options (BMPSaveOptions/BMPSaveOptions) kann beispielsweise als Argument an den Befehl bzw. die Methode save (saveAs/saveAs) bergeben werden. Siehe ffnen eines Dokuments auf Seite 28 und Speichern eines Dokuments auf Seite 31.

Konstanten
Eine weitere wichtige Komponente des Photoshop-Objektmodells fr JavaScript und VBScript sind Konstanten. Konstanten sind ein Wertetyp zur Definition einer Eigenschaft. Beispielsweise knnen mit der Eigenschaft kind eines Art Layer-Objekts nur bestimmte, in Photoshop zulssige Typen verwendet werden. Allgemeine Informationen zu Konstanten finden Sie im Handbuch Introduction to Scripting. HINWEIS: In dieser Dokumentation werden die eigentlichen Werte der numerischen Konstanten fr VBScript wie folgt verdeutlicht:
newLayerRef.Kind = 2 '2 indicates psLayerKind --> 2 (psTextLayer)

Durch den Apostroph (') vor der Erluterung wird ein Kommentar erstellt. Der auf den Apostroph folgende Text wird von der Skript-Engine ignoriert. Weitere Informationen zur Verwendung von Kommentaren finden Sie in dem Handbuch Introduction to Scripting. Lesen Sie beispielsweise die Informationen zum ArtLayer-Objekt im Handbuch Adobe PhotoshopCS5 JavaScript Scripting Reference oder Adobe PhotoshopCS5 Visual Basic Scripting Reference nach. Eine der Eigenschaften dieses Objekts ist Kind (kind). Der Datentyp fr diese Eigenschaft enthlt einen Link zu der Konstante, ber die mgliche Werte fr die Eigenschaft definiert werden. In VBScript handelt es sich um die Konstante PSLayerKind, in JavaScript um die Konstante LayerKind. Klicken Sie auf den Link, um die mglichen Werte fr die Eigenschaft kind anzuzeigen. HINWEIS: Verschiedene Objekte knnen denselben Eigenschaftsnamen mit unterschiedlichen Konstantenwerten verwenden. Die Konstantenwerte fr die Eigenschaft kind des Channel-Objekts unterscheiden sich beispielsweise von den Konstantenwerten fr die Eigenschaft kind des Art Layer-Objekts.

KAPITEL 2: Photoshop Grundlagen der Skripterstellung

Erstellen eines Beispielskripts Hello World

17

Erstellen eines Beispielskripts Hello World


In diesem Abschnitt wird in jeder der drei Skriptsprachen fr Photoshop ein sehr einfaches Skript vorgestellt. Die erste Aufgabe in allen Programmiersprachen besteht traditionell im Anzeigen der Meldung Hello World. Unser Hello World-Skript fhrt folgende Schritte aus: 1. Starten der Photoshop-Anwendung. 2. Erstellen eines neuen Document-Objekts Beim Erstellen des Dokuments wird die Variable docRef erstellt, anschlieend wird docRef ein Verweis auf das Dokument als Wert zugewiesen. Das Dokument soll eine Breite von 4Zoll und eine Hhe von 2Zoll haben. 3. Erstellen eines Art Layer-Objekts Im Skript wird die Variable artLayerRef erstellt, anschlieend wird artLayerRef ein Verweis auf das Art Layer-Objekt als Wert zugewiesen. 4. Definieren der Variablen artLayerRef als Textelement 5. Festlegen des Textelementinhalts auf Hello World HINWEIS: Auerdem werden Kommentare in das Skript eingefgt. Da dies das erste Skript ist, wird die Kommentarfunktion sehr hufig eingesetzt. Diese Schritte spiegeln einen bestimmten Pfad durch die Enthaltenseinshierarchie wider, wie im Folgenden veranschaulicht:

Application

Document

Art Layer

Text Item

KAPITEL 2: Photoshop Grundlagen der Skripterstellung

Erstellen eines Beispielskripts Hello World

18

Erstellen und Ausfhren eines AppleScripts


Fr diese Aufgabe mssen Sie zunchst den Skripteditor von Apple ffnen. HINWEIS: Der Standardpfad fr den Skripteditor lautet Programme> AppleScript> Skripteditor. So erstellen Sie Ihr erstes AppleScript fr Photoshop und fhren es aus: 1. Geben Sie folgendes Skript im Skripteditor ein: HINWEIS: Die Zeilen, die mit -- beginnen, sind Kommentare. Die Eingabe von Kommentaren ist optional.
-- Sample script to create a new text item and -- change its contents. --target Photoshop CS5 tell application "Adobe Photoshop CS5" -- Create a new document and art layer. set docRef to make new document with properties {width:4 as inches, height:2 as inches} set artLayerRef to make new art layer in docRef -- Change the art layer to be a text layer. set kind of artLayerRef to text layer -- Get a reference to the text object and set its contents. set contents of text object of artLayerRef to "Hello, World" end tell

2. Klicken Sie auf Ausfhren, um das Skript auszufhren. Photoshop erstellt ein neues Dokument, fgt eine neue Ebene hinzu, ndert den Ebenentyp in eine Textebene und setzt den Text auf Hello, World. HINWEIS: Sollten Fehler gemeldet werden, lesen Sie im Handbuch Introduction to Scripting den Abschnitt zum Debuggen von AppleScript.

KAPITEL 2: Photoshop Grundlagen der Skripterstellung

Erstellen eines Beispielskripts Hello World

19

Erstellen und Ausfhren eines VBScripts


Im Folgenden sind die Schritte zum Erstellen und Ausfhren eines VBScripts angegeben, das den Text Hello, World! in einem Photoshop-Dokument anzeigt. So erstellen Sie Ihr erstes VBScript fr Photoshop und fhren es aus: 1. Geben Sie folgendes Skript in einen Skript- oder Texteditor ein. HINWEIS: Die Eingabe von Kommentaren ist optional.
Dim appRef Set appRef = CreateObject( "Photoshop.Application" ) ' Remember current unit settings and then set units to ' the value expected by this script Dim originalRulerUnits originalRulerUnits = appRef.Preferences.RulerUnits appRef.Preferences.RulerUnits = 2 ' Create a new 2x4 inch document and assign it to a variable. Dim docRef Dim artLayerRef Dim textItemRef Set docRef = appRef.Documents.Add(2, 4) ' Create a new art layer containing text Set artLayerRef = docRef.ArtLayers.Add artLayerRef.Kind = 2 ' Set the contents of the text layer. Set textItemRef = artLayerRef.TextItem textItemRef.Contents = "Hello, World!" ' Restore unit setting appRef.Preferences.RulerUnits = originalRulerUnits

2. Speichern Sie die Datei als Textdatei mit der Erweiterung .vbs. 3. Doppelklicken Sie im Windows-Explorer auf die Datei, um das Skript auszufhren. Das Skript ffnet Photoshop.

Erstellen und Ausfhren eines JavaScripts


Im Folgenden sind die Schritte zum Erstellen und Ausfhren eines JavaScripts angegeben, das den Text Hello, World! in einem Photoshop-Dokument anzeigt. Da Sie Ihre JavaScripts direkt in Photoshop ausfhren, mssen Sie zu Beginn des Skripts keinen Code einfgen, mit dem Photoshop geffnet wird. HINWEIS: Adobe hat die Skriptsprache Extend Script entwickelt, die JavaScript fr die Verwendung mit Photoshop ergnzt. Sie knnen den Extend Script-Befehl #target verwenden, um die Photoshop-Anwendung aufzurufen. So knnen Sie JavaScripts ausfhren, die von beliebiger Stelle aus auf Photoshop zugreifen knnen. Weitere Informationen finden Sie im Handbuch JavaScript Tools Guide im Kapitel Script UI.

KAPITEL 2: Photoshop Grundlagen der Skripterstellung

Erstellen eines Beispielskripts Hello World

20

So erstellen Sie Ihr erstes JavaScript fr Photoshop und fhren es aus: 1. Geben Sie das folgende Skript ein. HINWEIS: Die Eingabe von Kommentaren ist optional.
// Hello Word Script // Remember current unit settings and then set units to // the value expected by this script var originalUnit = preferences.rulerUnits preferences.rulerUnits = Units.INCHES // Create a new 2x4 inch document and assign it to a variable var docRef = app.documents.add( 2, 4 ) // Create a new art layer containing text var artLayerRef = docRef.artLayers.add() artLayerRef.kind = LayerKind.TEXT // Set the contents of the text layer. var textItemRef = artLayerRef.textItem textItemRef.contents = "Hello, World" // Release references docRef = null artLayerRef = null textItemRef = null // Restore original ruler unit setting app.preferences.rulerUnits = originalUnit

2. Speichern Sie die Datei als Textdatei mit der Erweiterung .jsx im Ordner Vorgaben\Skripten Ihres Installationsverzeichnisses von Adobe PhotoshopCS5. HINWEIS: Nur JavaScripts, die sich im Ordner Vorgaben\Skripten befinden, knnen Sie in Photoshop ber Datei> Skripten aufrufen. Die Skripten werden erst nach dem nchsten Start der Anwendung im Men Datei> Skripten angezeigt. HINWEIS: Photoshop untersttzt auch JavaScript-Dateien mit der Erweiterung .js. 3. Fhren Sie einen der folgenden Schritte aus:

Wenn Photoshop bereits geffnet ist, whlen Sie Datei> Skripten> Durchsuchen, navigieren Sie zum Ordner Vorgaben> Skripten und whlen Sie Ihr Skript aus. Starten Sie Photoshop, whlen Sie Datei> Skripten und whlen Sie Ihr Skript aus dem Men Skripten.

Skripting in Photoshop
In diesem Kapitel werden verschiedene Techniken fr die Verwendung des Photoshop Document Object Models (DOM) zur Programmierung Photoshop-spezifischer Skripten demonstriert. Darber hinaus erfahren Sie, wie Sie mithilfe der Referenzhandbcher und Objektmodellbrowser Informationen ber die Objekte, Klassen, Eigenschaften, Befehle und sogar einige Werte (Konstanten oder numerische Werte) finden, die Sie bei der Erstellung von AppleScripts, VBScripts und JavaScripts fr Photoshop verwenden knnen. TIPP: Im gesamten Kapitel folgen auf die Erluterungen zur Erstellung eines Skripts Anweisungen dazu, wo Sie Informationen ber die im Skript verwendeten Elemente finden knnen. Auf diese Weise werden Sie schnell mit der Erstellung von Skripten in Photoshop vertraut sein.

Anzeigen von Objekten, Befehlen und Methoden in Photoshop


Referenzmaterial zu Photoshop fr jede der drei Skriptsprachen befindet sich in den Referenzhandbchern, die zusammen mit dem Programm installiert wurden:

Adobe PhotoshopCS5 AppleScript Scripting Reference Adobe PhotoshopCS5 Visual Basic Scripting Reference Adobe PhotoshopCS5 JavaScript Scripting Reference

Darber hinaus knnen Sie ber den jeweiligen Objektmodellbrowser fr jede Sprache auf Referenzmaterial zugreifen:

Verwenden Sie fr AppleScript den AppleScript-Skripteditor, um das Photoshop-AppleScript-Wrterbuch anzuzeigen. Verwenden Sie fr VBScript den VBA-Editor in Microsoft Word, den Visual Basic-Objektkatalog in Visual Basic oder Visual Studio. Verwenden Sie fr JavaScript den ExtendScript Object Model Viewer. Weitere Informationen finden Sie im Handbuch JavaScript Tools Guide.

Anzeigen des AppleScript-Wrterbuchs von Photoshop


Verwenden Sie den Apple Skripteditor zum Anzeigen des Wrterbuchs. HINWEIS: Der Standardpfad fr den Skripteditor lautet Programme> AppleScript> Skripteditor. So zeigen Sie das AppleScript-Wrterbuch an: 1. Whlen Sie im Skripteditor Ablage> Verzeichnis ffnen. Im Skripteditor wird das Dialogfenster Verzeichnis ffnen angezeigt. 2. Whlen Sie Adobe PhotoshopCS5 und klicken Sie anschlieend auf ffnen. Photoshop wird im Skripteditor geffnet. Anschlieend wird das Photoshop-Wrterbuch angezeigt, in dem Objekte sowie die ihnen zugeordneten Befehle, Eigenschaften und Elemente aufgefhrt sind. Das Wrterbuch enthlt auch die Parameter fr die einzelnen Befehle.

21

KAPITEL 3: Skripting in Photoshop

Festlegen des Application-Objekts als Ziel und Erstellen von Verweisen 22

HINWEIS: Das Photoshop-AppleScript-Wrterbuch enthlt keine vollstndige Liste der Open- und Save-Formate.

Anzeigen der Photoshop Type Library (VBS)


Sie knnen den VBA-Editor in Microsoft Word zur Anzeige von Objekten und Befehlen verwenden, die in Photoshop fr VBScript zur Verfgung stehen. So zeigen Sie die VBS-Objektbibliothek in Microsoft Word an: 1. Starten Sie Word und whlen Sie Extras> Makro> Visual Basic-Editor. 2. Whlen Sie Extras> Verweise, aktivieren Sie das Kontrollkstchen Adobe Photoshop Type Library und klicken Sie aufOK. 3. Whlen Sie Ansicht> Objektkatalog. 4. Whlen Sie aus der Liste der geffneten Bibliotheken in der linken oberen Dropdown-Liste die Option PhotoshopCS5 type library. 5. Whlen Sie eine Objektklasse aus, fr die Sie weitere Informationen anzeigen mchten. Zur Anzeige der in Photoshop fr VBScript verfgbaren Objekte und Befehle knnen Sie auch den Objektkatalog in der Visual Basic-Entwicklungsumgebung verwenden. So zeigen Sie die VBS-Objektbibliothek in der Visual Basic-Entwicklungsumgebung an: 1. Starten Sie Visual Studio 2005 oder Visual Basic. 2. Whlen Sie Ansicht> Objektbrowser/Objektkatalog aus. 3. Whlen Sie aus der Dropdown-Liste Durchsuchen die Option Benutzerdefinierten Komponentensatz bearbeiten aus. 4. Suchen Sie auf der Registerkarte COM den Eintrag Adobe PhotoshopCS5 Object Library. Whlen Sie ihn aus. 5. Klicken Sie auf Hinzufgen. Die ausgewhlte Bibliothek wird im Bereich Ausgewhlte Projekte und Komponenten des Fensters angezeigt. 6. Klicken Sie auf OK. 7. Die Photoshop-Bibliothek ist jetzt im Objektbrowser geladen. Klicken Sie auf das Pluszeichen neben dem Photoshop-Bibliotheksymbol. 8. Klicken Sie auf das Pluszeichen neben dem Photoshop-Objektsymbol. 9. Die in der Photoshop-Bibliothek definierten Objekte werden aufgelistet. Sie knnen ein Objekt auswhlen, um weitere Informationen ber die Klasse anzuzeigen.

Festlegen des Application-Objekts als Ziel und Erstellen von Verweisen


Da Sie Ihre AppleScripts und VBScripts auerhalb von Photoshop starten, sollte in Ihrem Skript als Erstes festgelegt sein, dass die Befehle in Photoshop ausgefhrt werden sollen. HINWEIS: In JavaScript mssen Sie das Application-Objekt nicht festlegen, da Sie die Skripten direkt aus Photoshop ffnen. (Siehe Erstellen und Ausfhren eines JavaScripts auf Seite 19.)

KAPITEL 3: Skripting in Photoshop

Erstellen neuer Objekte in einem Skript 23

AS

Um Photoshop in AppleScript als Ziel festzulegen, mssen Sie das Skript mit den folgenden Anweisungen beginnen bzw. beenden:
tell application "Adobe Photoshop CS5" ... end tell

HINWEIS: Da Sie alle Befehle in den tell-Block einschlieen, mssen Sie im Skript nicht auf das Application-Objekt verweisen. VBS Gehen Sie in VBScript folgendermaen vor, um die Anwendung als Ziel festzulegen:
Dim appRef Set appRef = CreateObject("Photoshop.Application")

JS

Da Sie in JavaScript keine Verweise auf ein Application-Objekt bentigen, knnen Sie ohne jede Qualifizierung auf alle Eigenschaften und Methoden der Anwendung zugreifen. Sie knnen ggf. in der Enthaltenseinshierarchie auf die Anwendung verweisen, wenn Ihre Skripten dadurch fr Sie besser lesbar sind. Verwenden Sie zum Verweisen auf das Application-Objekt nicht den Klassennamen, sondern das bereits definierte globale Objekt app. Die folgenden Anweisungen sind gleichbedeutend:
var docRef = app.documents[1]

und
var docRef=documents[1]

HINWEIS: In diesem Handbuch wird in vielen JavaScript-Beispielen grundstzlich nicht auf ein Application-Objekt verwiesen.

Erstellen neuer Objekte in einem Skript


Wenn Sie in Photoshop ein neues Dokument erstellen mchten, whlen Sie Datei> Neu. Wenn Sie in einem Dokument andere Objekttypen erstellen mchten, wie Ebenen, Kanle oder Pfade, verwenden Sie das Men Fenster oder klicken Sie in der entsprechenden Palette auf das Symbol Neu. In diesem Abschnitt wird gezeigt, wie Sie diese Aufgaben in einem Skript ausfhren knnen. Zum Erstellen eines Objekts in einem Skript benennen Sie den Objekttyp, den Sie erstellen mchten, und verwenden anschlieend den folgenden Befehl:

AS: VBS: JS:

make Add add()

Wie Sie unter Photoshop-Objektmodell auf Seite 11 sehen knnen, enthlt das Document-Objekt bis auf die Application-, Notifier- und Preferences-Objekte alle Objekte. Aus diesem Grund mssen Sie auf das Document-Objekt verweisen, wenn Sie Ihrem Skript ein anderes Objekt als ein Document- oder ein Notifier-Objekt hinzufgen. (Es ist nicht mglich, ein neues Preferences-Objekt hinzuzufgen.) HINWEIS: In VBScript und JavaScript verwenden Sie zur Benennung des Objekttyps den Namen der Objektsammlung. So fgen Sie z.B. ein Dokument der Documents-Sammlung hinzu und eine Grafikebene der art layers-Sammlung. Weitere Informationen zu Elementen und Sammlungen finden Sie im Handbuch Introduction to Scripting.

KAPITEL 3: Skripting in Photoshop

Erstellen neuer Objekte in einem Skript 24

AS

Mit der folgenden Anweisung erzeugen Sie ein Document-Objekt in einem AppleScript.
make new document

Sie knnen auch mithilfe des Befehls set eine Variable erstellen und so auf ein neues Dokument verweisen. Im folgenden Beispiel stellt die Variable docRef einen Verweis auf das neue Dokument dar:
set docRef to make new document

Wenn Sie ein anderes Objekt als ein Dokument erstellen mchten, mssen Sie auf das Document-Objekt verweisen, das das Objekt enthlt. Im folgenden Beispiel wird in dem durch die Variable docRef angegebenen Dokument eine Grafikebene erstellt.
make new art layer in docRef

HINWEIS: Wenn Sie ein Objekt in AppleScript erstellen, fgen Sie das Objekt tatschlich auf dieselbe Weise einem Element hinzu, wie Sie einer Sammlung ein VBScript- oder JavaScript-Objekt hinzufgen. In AppleScript ist der Elementname jedoch in der make- oder set-Anweisung impliziert. So bedeutet z.B. die Anweisung
make new document

tatschlich Folgendes:
make new document in the documents element

Fhren Sie die folgenden Schritte aus, um mehr ber das Erstellen von Objekten in einem AppleScript zu erfahren:

Schlagen Sie die make- und set-Befehle im Handbuch Adobe PhotoshopCS5 AppleScript Scripting Reference oder im Photoshop-AppleScript-Wrterbuch nach. Siehe Anzeigen des AppleScript-Wrterbuchs von Photoshop auf Seite 21. Um herauszufinden, welche Befehle fr ein Objekt verwendet werden knnen, schlagen Sie im Handbuch Adobe PhotoshopCS5 AppleScript Scripting Reference das jeweilige Objekt nach. Sind fr ein Objekt gltige Befehle verfgbar, befindet sich am Ende der Objektbeschreibung eine Liste dieser Befehle.

VBS

In VBScript knnen Sie die Add-Methode nur mit dem Namen der Sammlung verwenden. Die Add-Methode ist ausschlielich fr Sammlungsobjekte gltig. Darber hinaus mssen Sie in VBScript einen Verweis auf das Application-Objekt erstellen, wenn Sie in Ihrem Skript ein Objekt erstellen oder auf ein Objekt verweisen. Wenn Sie z.B. in einem VBScript ein Dokument erstellen, knnen Sie nicht den Objektnamen verwenden, wie dies im folgenden Beispiel der Fall ist, in dem ein Document-Objekt erstellt wird:
appRef.Document.Add()

Sie mssen den Namen der Sammlung verwenden, bei dem es sich um eine Pluralform des Objektnamens handelt, wie im folgenden Beispiel gezeigt:
appRef.Documents.Add()

HINWEIS: In dieser Beispielanweisung wird mithilfe der Variablen appRef auf das Application-Objekt verwiesen. Weitere Informationen finden Sie unter Festlegen des Application-Objekts als Ziel und Erstellen von Verweisen auf Seite 22. Zum Hinzufgen eines ArtLayer-Objekts mssen Sie einen Verweis sowohl auf das Application- als auch auf das Document-Objekt erstellen, in denen die Grafikebene enthalten sein soll. Im folgenden Beispiel wird mit der Variablen appRef auf das Application-Objekt verwiesen. Der Verweis auf das Document-Objekt erfolgt nicht mit dem Namen des Dokuments, sondern mit dem Dokumentindex.
appRef.Documents(1).ArtLayers.Add()

HINWEIS: In Photoshop beginnt der Index von VBScript-Sammlungen mit 1 statt mit 0. Das erste erstellte Dokument erhlt also nicht den Index0, sondern den Index1.

KAPITEL 3: Skripting in Photoshop

Festlegen des aktiven Objekts 25

Wenn Sie das Document-Objekt in der Adobe PhotoshopCS5 Visual Basic Scripting Reference oder im Visual Basic-Objektkatalog nachschlagen, werden Sie feststellen, dass es fr das Objekt keine Add()-Methode gibt. Die Add()-Methode steht jedoch fr das Documents-Objekt zur Verfgung. Entsprechend verfgt das ArtLayer-Objekt nicht ber eine Add()-Methode, das ArtLayers-Objekt jedoch schon. HINWEIS: Das Layers-Objekt bildet hier eine Ausnahme. Es handelt sich dabei zwar um ein Sammlungsobjekt, es enthlt jedoch keine Add()-Methode. Die Layers-Sammlung enthlt sowohl ArtLayer- als auch LayerSet-Objekte, die mit der Add-Methode in der ArtLayers- bzw. der LayerSets-Sammlung erzeugt werden. Weitere Informationen finden Sie, wenn Sie das Layers-Objekt in der Adobe PhotoshopCS5 Visual Basic Scripting Reference nachschlagen. JS In JavaScript knnen Sie die add()-Methode nur mit dem Namen der Sammlung verwenden. Die add()-Methode ist ausschlielich fr Sammlungsobjekte gltig. Analog zu VBScript verwenden Sie in JavaScript folgende Anweisung, um ein Dokument zu erstellen:
documents.add()

also nicht:
document.add()

HINWEIS: Bei Bedarf knnen Sie einen Verweis auf ein Application-Objekt einschlieen. Die folgende Anweisung entspricht dem vorhergehenden Beispiel:
app.documents.add()

Zum Hinzufgen eines ArtLayer-Objekts mssen Sie einen Verweis auf das Document-Objekt erstellen, das die Ebene enthlt, und die add()-Methode fr die ArtLayers-Sammlung verwenden (ber die artLayers-Eigenschaft von Document).
documents[0].artLayers.add()

Wie bei VBScript ist die add()-Methode zwar mit dem Documents-Objekt von JavaScript, aber nicht mit dem Document-Objekt verbunden. Entsprechend verfgt das ArtLayer-Objekt nicht ber eine add()-Methode, das ArtLayers-Objekt jedoch schon. HINWEIS: Das Layers-Sammlungsobjekt enthlt keine add()-Methode. Weitere Informationen finden Sie, wenn Sie das Layers-Objekt in der Adobe PhotoshopCS5 JavaScript Scripting Reference nachschlagen.

Festlegen des aktiven Objekts


Zum Bearbeiten eines Objekts in Photoshop mssen Sie das Objekt in den Vordergrund holen bzw. zum aktiven Objekt machen. Wenn Sie z.B. in einer Ebene arbeiten mchten, mssen Sie die Ebene zunchst in den Vordergrund holen. Bei Skripten gilt dieselbe Regel. Wenn Sie mit Ihrem Skript zwei oder mehr Dokumente erstellen, werden die Befehle und Methoden im Skript auf das aktive Dokument angewendet. Sie sollten deshalb sicherstellen, dass die Befehle auf das richtige Dokument angewendet werden, indem Sie beim Programmieren das aktive Dokument benennen, bevor Sie im Skript Befehle oder Methoden ausfhren. Zum Festlegen eines aktiven Objekts fhren Sie die folgenden Schritte aus:

In AppleScript verwenden Sie die Eigenschaft current des bergeordneten Objekts. In VBScript verwenden Sie die Eigenschaft ActiveObject des bergeordneten Objekts (z.B. ActiveDocument oder ActiveLayer). In JavaScript verwenden Sie die Eigenschaft activeObject des bergeordneten Objekts (z.B. activeDocument oder activeLayer).

KAPITEL 3: Skripting in Photoshop

Festlegen des aktiven Objekts 26

HINWEIS: Beim bergeordneten Objekt handelt es sich um das Objekt, das das angegebene Objekt enthlt. So ist z.B. die Anwendung dem Dokument bergeordnet, und das Dokument ist einer Ebene, einer Auswahl oder einem Kanal bergeordnet. Wenn Sie sich z.B. das Application-Objekt in der Adobe PhotoshopCS5 JavaScript Scripting Reference oder im ExtendScript Object Model Viewer ansehen, werden Sie feststellen, dass activeDocument eine seiner Eigenschaften ist; wenn Sie sich das Document-Objekt ansehen, werden Sie als Eigenschaften activeLayer und activeHistoryState entdecken. Wenn Sie sich analog hierzu application im Handbuch Adobe PhotoshopCS5 AppleScript Scripting Reference oder im Photoshop-AppleScript-Wrterbuch ansehen, werden Sie feststellen, dass dieses Objekt die Eigenschaft current hat usw. Beispielskripten fr das Festlegen aktiver Objekte finden Sie in den folgenden Abschnitten.

Festlegen des aktiven Dokuments auf Seite 26 Festlegen der aktiven Ebene auf Seite 27 Festlegen der aktiven Kanle auf Seite 28

Festlegen des aktiven Dokuments


Die folgenden Beispiele zeigen, wie Sie das aktive Dokument festlegen knnen. AS
--create 2 documents set docRef to make new document with properties {width:4 as inches, height:4 as inches} set otherDocRef to make new document with properties {width:4 as inches, height:6 as inches} --make docRef the active document set current document to docRef --here you would include command statements --that perform actions on the active document. Then, you could --make a different document the active document --use the current document property of the application class to --bring otherDocRef front-most as the new active document set current document to otherDocRef

VBS

'Create 2 documents Set docRef = app.Documents.Add ( 4, 4) Set otherDocRef = app.Documents.Add (4,6) 'make docRef the active document Set app.ActiveDocument = docRef 'here you would include command statements 'that perform actions on the active document. Then, you could 'make a different document the active document 'use the ActiveDocument property of the Application object to 'bring otherDocRef front-most as the new active document Set app.ActiveDocument = otherDocRef

KAPITEL 3: Skripting in Photoshop

Festlegen des aktiven Objekts 27

JS

// Create 2 documents var docRef = app.documents.add( 4, 4) var otherDocRef = app.documents.add (4,6) //make docRef the active document app.activeDocument = docRef //here you would include command statements //that perform actions on the active document. Then, you could //make a different document the active document //use the activeDocument property of the Application object to //bring otherDocRef front-most as the new active document app.activeDocument = otherDocRef

Festlegen der aktiven Ebene


Die folgenden Beispiele zeigen, wie Sie die Eigenschaft current layer (ActiveLayer/activeLayer) des Document-Objekts zum Festlegen der aktiven Ebene verwenden knnen. Um die aktive Ebene fr ein Dokument festlegen zu knnen, muss das Dokument selbst das aktuelle Dokument sein. AS
set current layer of current document to layer Layer 1 of current document

HINWEIS: Photoshop benennt die Ebenen standardmig Ebene1, Ebene2 usw. VBS
This example assumes appRef and docRef have been previously defined and assigned to the application object and a document object that contains at least one layer. appRef.ActiveDocument = docRef docRef.ActiveLayer = docRef.Layers(1)

Schlagen Sie die Eigenschaft ActiveLayer fr das Document-Objekt im Handbuch Adobe PhotoshopCS5 Visual Basic Scripting Reference oder im Visual Basic-Objektkatalog nach. HINWEIS: Sie knnen die zu verwendende Ebene auch ber den Ebenennamen angeben. Photoshop benennt die Ebenen standardmig Ebene1, Ebene2. Siehe Verweisen auf ArtLayer-Objekte auf Seite 38. JS
// This example assumes docRef has been previously defined and assigned to a // document object that contains at least one layer. activeDocument = docRef docRef.activeLayer = docRef.layers[0]

Schlagen Sie die Eigenschaft activeLayer fr das Document-Objekt im Handbuch Adobe PhotoshopCS5 JavaScript Scripting Reference oder im ExtendScript Object Model Viewer nach. HINWEIS: Sie knnen die zu verwendende Ebene auch ber den Ebenennamen angeben. Photoshop benennt die Ebenen standardmig Ebene1, Ebene2. Siehe Verweisen auf ArtLayer-Objekte auf Seite 38.

KAPITEL 3: Skripting in Photoshop

ffnen eines Dokuments 28

Festlegen der aktiven Kanle


Da jeweils mehrere Kanle aktiv sein knnen, nimmt die Eigenschaft current channels (ActiveChannels/activeChannels) des Document-Objekts als Wert ein Kanal-Array auf. Um die aktiven Kanle eines Dokuments festlegen zu knnen, muss das Dokument das aktive Dokument sein. AS Whlen Sie mithilfe eines Kanal-Arrays den ersten und den dritten Kanal als aktiv aus:
set current channels of current document to { channel 1 of current document, channel 3 of current document }

Sie knnen auch mithilfe der Eigenschaft component channels des Document-Objekts alle Kanle als aktiv auswhlen.
set current channels of current document to component channels of current document

VBS

Whlen Sie mithilfe eines Kanal-Arrays den ersten und dritten Kanal des aktiven Dokuments als aktiv aus:
This example assumes docRef is already the ActiveDocument Dim theChannels theChannels = Array(docRef.Channels(1), docRef.Channels(3)) docRef.ActiveChannels = theChannels

Sie knnen auch mithilfe der Eigenschaft Component Channels des Document-Objekts alle Kanle als aktiv auswhlen:
appRef.ActiveDocument.ActiveChannels= _ appRef.ActiveDocument.ComponentChannels

JS

Whlen Sie mithilfe eines Kanal-Arrays den ersten und den dritten Kanal als aktiv aus:
theChannels = new Array(docRef.channels[0], docRef.channels[2]) docRef.activeChannels = theChannels

Sie knnen auch mithilfe der Eigenschaft component Channels des Document-Objekts alle Kanle als aktiv auswhlen:
app.activeDocument.activeChannels = activeDocument.componentChannels

ffnen eines Dokuments


Mit dem Befehl open/Open/open() des Application-Objekts knnen Sie ein vorhandenes Dokument ffnen. Sie mssen den Namen des Dokuments (d.h. den Pfad der Datei, die das Dokument enthlt) zusammen mit dem Befehl angeben.

ffnen einer Datei mit dem Standarddateiformat


Da Photoshop viele verschiedene Dateiformate untersttzt, knnen Sie mit dem Befehl open/Open/open() das Format des Dokuments angeben, das Sie ffnen mchten. Wenn Sie das Format nicht angeben, leitet Photoshop das Standardformat der Datei fr Sie ab. In den folgenden Beispielen wird ein Dokument in dem fr das Dokument am besten geeigneten Format geffnet:

KAPITEL 3: Skripting in Photoshop

ffnen eines Dokuments 29

AS VBS JS

set theFile to alias "Applications:Documents:MyFile" open theFile fileName = "C:\MyFile" Set docRef = appRef.Open(fileName) var fileRef = File(app.path + "/Samples/Fish.psd") var docRef = app.open(fileRef)

Beachten Sie, dass Sie in JavaScript ein File-Objekt erstellen und dann einen Verweis auf das Objekt an den open()-Befehl bermitteln mssen.

Angeben der zu ffnenden Dateiformate


Open-Klassen OpenOptionen

Photo CD OpenOptionen

Raw Format OpenOptionen

Camera Raw OpenOptionen

EPS OpenOptionen

PDF OpenOptionen

Fr die Dokumenttypen in der folgenden Liste knnen Sie Optionen festlegen, die bestimmen, wie das Dokument geffnet wird (z.B. Hhe und Breite des Fensters, in dem das Dokument geffnet wird, welche Seite bei einer Datei mit mehreren Seiten geffnet werden soll usw.).

Photo CD Camera Raw Raw-Format Adobe PDF EPS

Wenn Sie wissen mchten, welche Optionen Sie fr die einzelnen Dateitypen festlegen knnen, schlagen Sie die Eigenschaften der OpenOptions-Objekte nach, die mit den Namen der Dateiformate beginnen. Beispiel:

Schlagen Sie im Handbuch Adobe PhotoshopCS5 AppleScript Scripting Reference die Photo CD open options-Klasse oder die EPS open objects-Klasse nach. Schlagen Sie im Handbuch Adobe PhotoshopCS5 Visual Basic Scripting Reference bzw. Adobe PhotoshopCS5 JavaScript Scripting Reference das PhotoCDOpenOptions-Objekt oder das EPSOpenOptions-Objekt nach.

Die folgenden Beispiele zeigen, wie Sie ein generisches PDF-Dokument (mit mehreren Seiten und mehreren Bildern) mit folgenden Spezifikationen ffnen knnen:

Das Dokument wird im RGB-Modus mit einer Auflsung von 72Pixel/Zoll geffnet. Glttung wird eingesetzt, um die Zackenbildung an den Kanten von Bildern im Dokument zu minimieren.

KAPITEL 3: Skripting in Photoshop

ffnen eines Dokuments 30

Seite3 des Dokuments wird angezeigt. Die ursprngliche Form des Dokuments wird entsprechend den fr Hhe und Breite festgelegten Eigenschaften gendert, wenn die ursprngliche Form nicht doppelt so breit wie hoch ist.

AS

tell application "Adobe Photoshop CS5" set myFilePath to alias "OS X 10.5.8 US:Users:psauto:Desktop:opal_screen.pdf" with timeout of 300 seconds open myFilePath as PDF with options {class:PDF open options, mode:RGB, resolution:72, use antialias:true, page:3} end timeout end tell Dim appRef Set appRef = CreateObject("Photoshop.Application") 'Remember unit settings and set to values expected by this script Dim originalRulerUnits originalRulerUnits = appRef.Preferences.RulerUnits appRef.Preferences.RulerUnits = 1 'value of 1 = psPixels 'Create a PDF option object Dim pdfOpenOptionsRef Set pdfOpenOptionsRef = CreateObject("Photoshop.PDFOpenOptions") pdfOpenOptionsRef.AntiAlias = True pdfOpenOptionsRef.Mode = 2 ' psOpenRGB pdfOpenOptionsRef.Resolution = 72 pdfOpenOptionsRef.Page = 3 ' open the file Dim docRef Set docRef = appRef.Open(C:\\PDFFiles\MyFile.pdf, pdfOpenOptionsRef) 'Restore unit setting appRef.Preferences.RulerUnits = originalRulerUnits

VBS

JS

HINWEIS: Das ExtendScript File-Objekt erwartet eine Universal Resource Identifier-Notation (URI). Weitere Informationen finden Sie im Handbuch JavaScript Tools Guide.
// Set the ruler units to pixels var originalRulerUnits = app.preferences.rulerUnits app.preferences.rulerUnits = Units.PIXELS // Get a reference to the file that we want to open var fileRef = new File(/c/pdffiles/myfile.pdf) // Create a PDF option object var pdfOpenOptions = new PDFOpenOptions pdfOpenOptions.antiAlias = true pdfOpenOptions.mode = OpenDocumentMode.RGB pdfOpenOptions.resolution = 72 pdfOpenOptions.page = 3 // open the file app.open( fileRef, pdfOpenOptions ) // restore unit settings app.preferences.rulerUnits = originalRulerUnits

KAPITEL 3: Skripting in Photoshop

Speichern eines Dokuments 31

Speichern eines Dokuments


Im Folgenden finden Sie Optionen fr das Speichern von Dokumenten in Photoshop. Wenn Sie wissen mchten, welche Eigenschaften Sie fr ein bestimmtes Dateiformat festlegen knnen, schlagen Sie das Objekt nach, das mit dem Namen des Dateiformats beginnt. Wenn Sie z.B. mehr ber die Eigenschaften fr das Speichern einer .eps-Datei erfahren mchten, gehen Sie wie folgt vor:

Schlagen Sie im Handbuch Adobe PhotoshopCS5 AppleScript Scripting Reference die Klasse EPS save options nach. Schlagen Sie im Handbuch Adobe PhotoshopCS5 Visual Basic Scripting Reference bzw. Adobe PhotoshopCS5 JavaScript Scripting Reference EPSSaveOptions nach. Save-Klassen SaveOptionen

Photoshop

BMP

GIF

EPS

JPEG

PDF

PICT-Datei

PICTRessource

Pixar

PNG

TIFF

Raw

DSC1

DSC2

SGI RGB-

Targa

HINWEIS: Beachten Sie dabei, dass die Formate Open und Save nicht identisch sind. Einen Vergleich finden Sie unter Angeben der zu ffnenden Dateiformate auf Seite 29. HINWEIS: Die folgenden optionalen Formate sind nur verfgbar, wenn sie zustzlich installiert wurden:

Alias PIX Electric Image SGI RGB Wavefront RLA SoftImage

Mit den folgenden Skripten knnen Sie ein Dokument als .jpeg-Datei speichern: AS
tell application "Adobe Photoshop CS5" make new document set myFile to "OS X 10.5.8 US:Users:psauto:Desktop:Rat.jpg" set myOptions to {class:JPEG save options, embed color profile:false, format options:standard, matte:background color matte} save current document in file myFile as JPEG with options myOptions appending no extension without copying end tell

KAPITEL 3: Skripting in Photoshop

Festlegen von Anwendungsvoreinstellungen 32

VBS

Dim appRef,docRef Set appRef = CreateObject("Photoshop.Application") Set docRef = appRef.Documents.Add() Set jpgSaveOptions = CreateObject("Photoshop.JPEGSaveOptions") jpgSaveOptions.EmbedColorProfile = True jpgSaveOptions.FormatOptions = 1 'for psStandardBaseline jpgSaveOptions.Matte = 1 'for psNoMatte jpgSaveOptions.Quality = 1 appRef.ActiveDocument.SaveAs "c:\temp\myFile2", _ jpgSaveOptions, True, 2 'for psLowercase

JS

app.documents.add( 4, 4 ) jpgFile = new File( "/Temp001.jpeg" ) jpgSaveOptions = new JPEGSaveOptions() jpgSaveOptions.embedColorProfile = true jpgSaveOptions.formatOptions = FormatOptions.STANDARDBASELINE jpgSaveOptions.matte = MatteType.NONE jpgSaveOptions.quality = 1 app.activeDocument.saveAs(jpgFile, jpgSaveOptions, true, Extension.LOWERCASE)

Festlegen von Anwendungsvoreinstellungen


Sie knnen mit Ihrem Skript Anwendungsvoreinstellungen wie Farbwhler, Speicheroptionen fr Dateien, Einstellungen fr Hilfslinien und Raster usw. festlegen. HINWEIS: Die Eigenschaften in der settings-Klasse/im Preferences-Objekt entsprechen den Optionen im Dialogfeld Voreinstellungen von PhotoshopCS5, die Sie anzeigen knnen, indem Sie in Photoshop die Optionen Photoshop> Voreinstellungen (MacOS) bzw. Bearbeiten> Voreinstellungen (Windows) whlen. Erluterungen zu den einzelnen Voreinstellungen finden Sie in der Hilfe zu Photoshop. AS Mit den Eigenschaften der settings-Klasse knnen Sie die Anwendungsvoreinstellungen in AppleScript festlegen. Mit dem folgenden Skript werden die Einstellungen fr Lineale und Textgre festgelegt:
set ruler units of settings to inch units set type units of settings to pixel units

Schlagen Sie im Handbuch Adobe PhotoshopCS5 AppleScript Scripting Reference oder im Photoshop-AppleScript-Wrterbuch die Klasse settings-object nach, um alle Einstellungsvoreinstellungen anzuzeigen, die Sie verwenden knnen. VBS Das Preferences-Objekt ist ein untergeordnetes Objekt des Application-Objekts. Wenn Sie das Preferences-Objekt in einem VBScript verwenden, mssen Sie sein Enthaltensein im Application-Objekt angeben.
appRef.Preferences.RulerUnits = 2 'for PsUnits --> 2 (psInches) appRef.Preferences.TypeUnits = 1 'for PsTypeUnits --> 1 (psPixels)

Schlagen Sie im Handbuch Adobe PhotoshopCS5 Visual Basic Scripting Reference oder im Visual Basic-Objektkatalog das Preferences-Objekt nach, um alle Einstellungsvoreinstellungen anzuzeigen, die Sie verwenden knnen. Schlagen Sie auerdem die Eigenschaft Preferences des Application-Objekts nach.

KAPITEL 3: Skripting in Photoshop

Zulassen oder Verhindern von Dialogfeldern 33

JS

Das Preferences-Objekt ist ein untergeordnetes Objekt des Application-Objekts.


preferences.rulerUnits = Units.INCHES preferences.typeUnits = TypeUnits.PIXELS

Schlagen Sie im Handbuch Adobe PhotoshopCS5 JavaScript Scripting Reference oder im ExtendScript Object Model Viewer das Preferences-Objekt nach, um alle Einstellungsvoreinstellungen anzuzeigen, die Sie verwenden knnen. Schlagen Sie auerdem die Eigenschaft preferences des Application-Objekts nach.

Zulassen oder Verhindern von Dialogfeldern


Es ist wichtig, dass Sie Dialogfelder ordnungsgem ber ein Skript steuern knnen. Wenn ein Dialogfeld angezeigt wird, wird das Skript angehalten, bis ein Anwender das Dialogfeld ausblendet. Dies stellt normalerweise bei einem interaktiven Skript kein Problem dar, bei dem davon ausgegangen wird, dass ein Anwender am Computer sitzt. Wenn Sie jedoch ein Skript verwenden, das in einem nicht berwachten Modus (Stapelmodus) ausgefhrt wird, mssen Sie verhindern, dass Dialogfelder angezeigt werden und Ihr Skript unterbrechen. Mithilfe der Eigenschaft display dialogs (DisplayDialogs/displayDialogs) des Application-Objekts steuern Sie, ob Dialogfelder angezeigt werden oder nicht. HINWEIS: Die Verwendung von Dialogfeldern in einem Skript entspricht in etwa der Verwendung von Stopps in einer Aktion in Photoshop. AS Das folgende Skript verhindert, dass Dialogfelder angezeigt werden:
set display dialogs to never

Schlagen Sie im Handbuch Adobe PhotoshopCS5 AppleScript Scripting Reference oder im Photoshop-AppleScript-Wrterbuch die Class application nach, um die Werte zu ermitteln, die Sie fr die Eigenschaft display dialogs verwenden knnen. VBS Zum Festlegen von Voreinstellungen fr Dialogfelder verwenden Sie die Eigenschaft DisplayDialogs des
Application-Objekts. appRef.DisplayDialogs = 3 'for PsDialogModes --> 3 (psDisplayNoDialogs)

Beachten Sie, dass es sich bei DisplayDialogs um eine Eigenschaft des Application-Objekts handelt und Sie deshalb im Skript einen Verweis auf das Application-Objekt erstellen mssen, damit Sie die Eigenschaft erhalten. Schlagen Sie im Handbuch Adobe PhotoshopCS5 Visual Basic Scripting Reference oder im Visual Basic-Objektkatalog die Eigenschaft DisplayDialogs des Application-Objekts nach. Sie werden feststellen, dass es sich beim Datentyp fr diese Eigenschaft um die Konstante PsDialogModes handelt. Sie knnen auch die Optionen fr PsDialogModes nachschlagen. JS Zum Festlegen von Voreinstellungen fr Dialogfelder verwenden Sie die Eigenschaft displayDialogs des
Application-Objekts. displayDialogs = DialogModes.NO

Schlagen Sie im Handbuch Adobe PhotoshopCS5 JavaScript Scripting Reference oder im ExtendScript Object Model Viewer die Eigenschaft displayDialogs des Application-Objekts und anschlieend die Konstante DialogModes nach.

Arbeiten mit dem Objektmodell von Photoshop


Dieser Abschnitt enthlt Informationen zur Verwendung der Objekte im Objektmodell von Photoshop. Informationen zu Objektmodellen finden Sie im Handbuch Introduction to Scripting sowie unter Photoshop-Objektmodell auf Seite 11.

KAPITEL 3: Skripting in Photoshop

Arbeiten mit dem Objektmodell von Photoshop 34

Verwenden des Application-Objekts


In diesem Abschnitt wird beschrieben, wie und wann Sie das Application-Objekt in einem Skript verwenden knnen. Darber hinaus erfahren Sie, wie Sie einige Eigenschaften des Application-Objekts verwenden knnen. Sie verwenden die Eigenschaften und Befehle des Application-Objekts, um mit Photoshop-Funktionen und -Objekten wie den folgenden zu arbeiten:

Globale Einstellungen oder Voreinstellungen in Photoshop, wie Maeinheiten oder Farbeinstellungen (siehe Festlegen von Anwendungsvoreinstellungen auf Seite 32). Dokumente Sie knnen Dokumente hinzufgen oder ffnen und festlegen, welches Dokument aktiv sein soll. ffnen eines Dokuments auf Seite 28 und Festlegen des aktiven Objekts auf Seite 25. Aktionen Sie knnen Aktionen ausfhren, die mithilfe von Skripten oder unter Verwendung der Aktionenpalette in Photoshop erstellt wurden. Siehe Action Manager auf Seite 73.

Sie knnen die Eigenschaften des Application-Objekts verwenden, um z.B. die folgenden Informationen abzurufen:

Eine Liste aller auf dem System installierten Schriftarten.

AS: Stellen Sie theFonts auf fonts ein HINWEIS: In AppleScript ist fonts eine separate Sammlung, daher ist zum Abrufen dieser Sammlung kein Verweis auf das Application-Objekt erforderlich.

VBS: Stellen Sie fontsInstalled = AppRef.Fonts ein JS: var fontsInstalled = app.fonts

Der fr Adobe Photoshop verfgbare nicht belegte Speicherplatz (ber die Eigenschaft free memory (FreeMemory/freeMemory) des Application-Objekts). Der Speicherort des Preferences-Ordners (ber die Eigenschaft preferences folder (PreferencesFolder/preferencesFolder) des Application-Objekts).

Weitere Informationen erhalten Sie, wenn Sie die Eigenschaften des Application-Objekts im Referenzhandbuch oder im Objektbrowser der von Ihnen verwendeten Sprache nachschlagen.

Verwenden des Document-Objekts


Das Document-Objekt kann ein beliebiges geffnetes Dokument in Photoshop reprsentieren. Sie knnen sich ein Document-Objekt als eine Datei oder als eine Arbeitsflche vorstellen. Sie knnen das Document-Objekt zu folgenden Zwecken verwenden:

Zugriff auf im Document-Objekt enthaltene Skriptobjekte, wie ArtLayer- oder Channel-Objekte. Weitere Informationen finden Sie unter Photoshop-Objektmodell auf Seite 11. Manipulieren eines bestimmten Document-Objekts mithilfe von Befehlen oder Methoden. Sie knnen z.B. die Arbeitsflche freistellen, drehen oder spiegeln, die Gre des Bildes oder der Arbeitsflche anpassen oder das Bild zuschneiden. Eine Veranschaulichung finden Sie unter Manipulieren eines Document-Objekts auf Seite 35. Abrufen der aktiven Ebene. Siehe Festlegen der aktiven Ebene auf Seite 27. Speichern des aktuellen Dokuments. Siehe Speichern eines Dokuments auf Seite 31. Kopieren und Einfgen innerhalb des aktiven Dokuments oder zwischen verschiedenen Dokumenten. Siehe Verwenden der Zwischenablage auf Seite 54.

KAPITEL 3: Skripting in Photoshop

Arbeiten mit dem Objektmodell von Photoshop 35

Manipulieren eines Document-Objekts


Die nachstehenden Beispiele zeigen, wie Sie folgende Aufgaben ausfhren knnen:

Speichern der vorhandenen Voreinstellungen fr Linealmaeinheiten und Einstellen der Maeinheit fr Lineale auf Zoll ffnen einer vorhandenen Datei als Dokument (unter Verwendung von Ente.tif ) ndern der Bildgre auf eine Breite von 4Zoll und eine Hhe von 4Zoll ndern der Gre des Dokumentfensters (bzw. der Arbeitsflche) auf eine Hhe von 4Zoll und eine Breite von 4Zoll Zuschneiden des oberen und unteren Bildrands Freistellen des Bildes Spiegeln des gesamten Fensters Wiederherstellen der ursprnglichen Maeinheit fr Lineale

HINWEIS: Informationen zu Linealeinheiten finden Sie unter Festlegen von Anwendungsvoreinstellungen auf Seite 32. AS
tell application "Adobe Photoshop CS5" set saveUnit to ruler units of settings set ruler units of settings to inch units set duckFile to alias "OS X 10.5.8 US:Applications:Adobe Photoshop CS5:Samples:Ducky.tif" open duckFile set docRef to current document resize image docRef width 4 height 4 resize canvas docRef width 4 height 4 trim docRef basing trim on top left pixel with top trim and bottom trim without left trim and right trim set ruler units of settings to pixel units crop current document bounds {100, 200, 400, 500} angle 45 width 20 height 20 flip canvas docRef direction horizontal set ruler units of settings to saveUnit end tell Dim appRef, docRef Set appRef = CreateObject("Photoshop.Application") 'save original ruler units, then set ruler units to inches startRulerUnits = appRef.Preferences.RulerUnits appRef.Preferences.RulerUnits = 2 'for PsUnits --> 2 (psInches) Set docRef = appRef.Open(appRef.Path & "\Samples\Ducky.tif") docRef.ResizeImage 4,4 docRef.ResizeCanvas 4,4 'Trim the document with ' type = 1 (psTopLeftPixel) ' top=true, left=false, bottom=true, right=false docRef.Trim 1,True,False,True,False

VBS

KAPITEL 3: Skripting in Photoshop

Arbeiten mit dem Objektmodell von Photoshop 36

'the crop command uses unit values 'so change the ruler units to pixels appRef.Preferences.RulerUnits = 1 ' (psPixels) 'Crop the document with ' angle=45, width=20,height=20 docRef.Crop Array(100,200,400,500),45,20,20 docRef.FlipCanvas 1 ' psHorizontal 'restore ruler units appRef.Preferences.RulerUnits = startRulerUnits

JS

//save original ruler units, then assign it to inches startRulerUnits = app.preferences.rulerUnits app.preferences.rulerUnits = Units.INCHES //get a reference to the file, and open it var fileRef = new File(app.path + "/samples/ducky.tif") var docRef = app.open(fileRef) //this sample script assumes the ruler units have been set to inches docRef.resizeImage( 4,4 ) docRef.resizeCanvas( 4,4 ) docRef.trim(TrimType.TOPLEFT, true, false, true, false) //the crop command uses unit values //so change the ruler units to pixels app.preferences.rulerUnits =Units.PIXELS docRef.crop (new Array(100,200,400,500), 45, 20, 20) docRef.flipCanvas(Direction.HORIZONTAL) //restore original preferences app.preferences.rulerUnits = startRulerUnits

Arbeiten mit Layer-Objekten


Das Objektmodell von Photoshop enthlt zwei verschiedene Layer-Objekttypen:
ArtLayer-Objekte, die Bildinhalte enthalten knnen und nahezu identisch mit Ebenen in Photoshop sind.

HINWEIS: Ein ArtLayer-Objekt kann auch Text enthalten, wenn Sie mithilfe der Eigenschaft kind fr das ArtLayer-Objekt den Objekttyp Textebene auswhlen.
Layer Set-Objekte, die kein oder mehrere ArtLayer-Objekte enthalten knnen.

Wenn Sie eine Ebene erstellen, mssen Sie einen der folgenden Typen auswhlen: ArtLayer oder Layer Set. HINWEIS: Sowohl das ArtLayer- als auch das LayerSet-Objekt verfgen ber entsprechende Sammlungsobjekte, ArtLayers und LayerSets, die wiederum einen add/Add/add()-Befehl aufweisen. Sie knnen mithilfe des Layers-Sammlungsobjekts Verweise auf ArtLayer- und LayerSet-Objekte erstellen, diese Objekte jedoch nicht hinzufgen, da dieses Sammlungsobjekt im Gegensatz zu anderen Sammlungsobjekten keinen add/Add/add()-Befehl aufweist.

KAPITEL 3: Skripting in Photoshop

Arbeiten mit dem Objektmodell von Photoshop 37

Erstellen eines ArtLayer-Objekts


Das folgende Beispiel zeigt, wie Sie am Anfang des aktuellen Dokuments ein ArtLayer-Objekt erstellen knnen, das mit roter Farbe gefllt ist. AS
tell application "Adobe Photoshop CS5" make new document make new art layer at beginning of current document with properties {name:"MyBlendLayer", blend mode:normal} select all current document fill selection of current document with contents {class:RGB color, red:255, green:0, blue:0} end tell Dim appRef Set appRef = CreateObject("Photoshop.Application") ' Create a new art layer at the beginning of the current document Dim docRef Dim layerObj Set docRef = appRef.Documents.Add() Set layerObj = appRef.ActiveDocument.ArtLayers.Add layerObj.Name = "MyBlendLayer" layerObj.BlendMode = 2 'psNormalBlend ' Select all so we can apply a fill to the selection appRef.ActiveDocument.Selection.SelectAll ' Create a color to be used with the fill command Dim colorObj Set colorObj = CreateObject("Photoshop.SolidColor") colorObj.RGB.Red = 255 colorObj.RGB.Green = 0 colorObj.RGB.Blue = 0 ' Now apply fill to the current selection appRef.ActiveDocument.Selection.Fill colorObj

VBS

JS

//make a new document app.documents.add() // Create a new art layer at the beginning of the current document var layerRef = app.activeDocument.artLayers.add() layerRef.name = "MyBlendLayer" layerRef.blendMode = BlendMode.NORMAL // Select all so we can apply a fill to the selection app.activeDocument.selection.selectAll // Create a color to be used with the fill command var colorRef = new solidColor colorRef.rgb.red = 255 colorRef.rgb.green = 100 colorRef.rgb.blue = 0 // Now apply fill to the current selection app.activeDocument.selection.fill(colorRef)

KAPITEL 3: Skripting in Photoshop

Arbeiten mit dem Objektmodell von Photoshop 38

Erstellen eines Layer Set-Objekts


Das folgende Beispiel zeigt, wie Sie im aktuellen Dokument ein Layer Set-Objekt erstellen knnen, nachdem Sie zunchst das ArtLayer-Objekt erstellt haben: AS
tell application "Adobe Photoshop CS5" make new document with properties {name:"My Document"} make new art layer at beginning of current document make new layer set after layer 1 of current document end tell Dim appRef Set appRef = CreateObject("Photoshop.Application") 'Make a new document and a first layer in the document appRef.Documents.Add() appRef.ActiveDocument.ArtLayers.Add() ' Get a reference to the first layer in the document Dim layerRef Set layerRef = appRef.ActiveDocument.Layers(1) ' Create a new LayerSet (it will be created at the beginning of the document) Dim newLayerSetRef Set newLayerSetRef = appRef.ActiveDocument.LayerSets.Add ' Move the new layer to after the first layer newLayerSetRef.Move layerRef, 4 'psPlaceAfter

VBS

JS

// make a new document and a layer in the document app.documents.add() app.activeDocument.artLayers.add() // Get a reference to the first layer in the document var layerRef = app.activeDocument.layers[0] // Create a new LayerSet (it will be created at the beginning of the // document) var newLayerSetRef = app.activeDocument.layerSets.add() // Move the new layer to after the first layer newLayerSetRef.move(layerRef, ElementPlacement.PLACEAFTER)

Verweisen auf ArtLayer-Objekte


Wenn Sie in Photoshop eine Ebene (also kein Skript) erstellen, wird die Ebene der Ebenenpalette hinzugefgt und mit einer Nummer versehen. Diese Nummern fungieren als Ebenennamen und entsprechen nicht den Indexnummern von ArtLayer-Objekten, die Sie in einem Skript erstellen. In Ihrem Skript (VBScript oder JavaScript) gilt immer die Ebene, die in der Liste in der Ebenenpalette ganz oben steht, als erste Ebene im Index. Wenn Ihr Dokument z.B. ber vier Ebenen verfgt, erhalten diese in Photoshop die Namen Hintergrund, Ebene1, Ebene2 und Ebene 3. Normalerweise steht Ebene3 in der Ebenenpalette ganz oben in der Liste, da sie zuletzt hinzugefgt wurden.

KAPITEL 3: Skripting in Photoshop

Arbeiten mit dem Objektmodell von Photoshop 39

Mit der folgenden Syntax knnen Sie Verweise auf die Ebenennamen erstellen, die die Ebenen in der Anwendung erhalten: AS
layer 1 of layer set 1 of current document

HINWEIS: Im Gegensatz zu Objektverweisen in JavaScript oder VBScript bleiben AppleScript-Objektverweisnamen nicht konstant. Informationen zu Dateiverweisen mit as alias oder to a reference to file finden Sie in verschiedenen Dokumentationen zur AppleScript-Sprache. VBS JS
Layers("Layer 3").name layers["Layer 3"].name //using the collection name and square brackets for the collection

Arbeiten mit LayerSet-Objekten


Vorhandene Ebenen knnen in Ebenensets verschoben werden. Die folgenden Beispiele zeigen, wie Sie ein LayerSet-Objekt erstellen, ein bereits vorhandenes ArtLayer-Objekt duplizieren und das duplizierte Objekt in das Ebenenset verschieben knnen. AS
set current document to document "My Document" set layerSetRef to make new layer set at end of current document set newLayer to duplicate layer "Layer 1" of current document to end of current document move newLayer to end of layerSetRef

In AppleScript knnen Sie eine Ebene auch direkt im Ziel-Ebenenset duplizieren.


set current document to document "My Document" set layerSetRef to make new layer set at end of current document duplicate layer "Layer 1" of current document to end of layerSetRef

VBS

In VBScript knnen Sie die Ebene mit der gleichen Methode duplizieren und platzieren.
Dim appRef, docRef Set appRef = CreateObject("Photoshop.Application") 'Make a new document and a first layer in the document Set docRef = appRef.Documents.Add() appRef.ActiveDocument.ArtLayers.Add() Set layerSetRef = docRef.LayerSets.Add() Set layerRef = docRef.ArtLayers(1).Duplicate(layerSetRef, 2)

JS

In JavaScript knnen Sie die Ebene whrend der Duplizierungsmethode platzieren.


// create a document and an initial layer var docRef = app.documents.add() docRef.artLayers.add() var layerSetRef = docRef.layerSets.add() var layerRef = docRef.artLayers[0].duplicate(layerSetRef, ElementPlacement.PLACEATEND)

KAPITEL 3: Skripting in Photoshop

Arbeiten mit dem Objektmodell von Photoshop 40

Verknpfen von Layer-Objekten


Mithilfe von Skripten knnen Sie auch Ebenen verknpfen bzw. die Verknpfungen zwischen Ebenen aufheben. Wenn Sie Ebenen verknpfen, knnen Sie sie mit einer einzigen Anweisung verschieben oder transformieren. AS
make new art layer in current document with properties {name:"L1"} make new art layer in current document with properties {name:"L2"} link art layer "L1" of current document with art layer "L2" of current document

Schlagen Sie den link-Befehl im Handbuch Adobe PhotoshopCS5 AppleScript Scripting Reference oder im Photoshop-AppleScript-Wrterbuch nach. VBS
Set layer1Ref = docRef.ArtLayers.Add() Set layer2Ref = docRef.ArtLayers.Add() layer1Ref.Link layer2Ref

Schlagen Sie Link als eine Methode des ArtLayer-Objekts im Handbuch Adobe PhotoshopCS5 Visual Basic Scripting Reference oder im Visual Basic-Objektkatalog nach. Schlagen Sie auerdem Add als eine Methode des ArtLayers-Objekts nach. JS
var layerRef1 = docRef.artLayers.add() var layerRef2 = docRef.artLayers.add() layerRef1.link(layerRef2)

Schlagen Sie link() als eine Methode des ArtLayer-Objekts im Handbuch Adobe PhotoshopCS5 JavaScript Scripting Reference oder im ExtendScript Object Model Viewer nach. Schlagen Sie auerdem add() als eine Methode des ArtLayers-Objekts nach.

Anwenden von Stilen auf Ebenen


HINWEIS: Dieser Vorgang entspricht dem Ziehen eines Stils aus der Stilepalette von Photoshop auf eine Ebene. Sie knnen mit Ihrem Skript Stile auf ein ArtLayer-Objekt anwenden. Zum Anwenden eines Stils in einem Skript verwenden Sie den Befehl apply layer style/ApplyStyle/applyStyle() und schlieen den Namen des Stils als Argument in gerade doppelte Anfhrungszeichen ein. HINWEIS: Bei den Namen der Ebenenstile muss die Gro- und Kleinschreibung beachtet werden. In der Hilfe zu Photoshop finden Sie eine Liste der in der Stilepalette enthaltenen Stile sowie weitere Informationen zu diesen Stilen. In den folgenden Beispielen wird der Ebenenstil Puzzle der Ebene mit dem Namen L1 zugewiesen. AS
apply layer style art layer "L1" of current document using "Puzzle (Image)"

Schlagen Sie den Befehl apply layer style im Handbuch Adobe PhotoshopCS5 AppleScript Scripting Reference oder im Photoshop-AppleScript-Wrterbuch nach. VBS
docRef.ArtLayers("L1").ApplyStyle "Puzzle (Image)"

Schlagen Sie ApplyStyle als eine Methode des ArtLayer-Objekts im Handbuch Adobe PhotoshopCS5 Visual Basic Scripting Reference oder im Visual Basic-Objektkatalog nach. JS
docRef.artLayers["L1"].applyStyle("Puzzle (Image)")

Schlagen Sie applyStyle() als eine Methode des ArtLayer-Objekts im Handbuch Adobe PhotoshopCS5 JavaScript Scripting Reference oder im ExtendScript Object Model Viewer nach.

KAPITEL 3: Skripting in Photoshop

Arbeiten mit dem Objektmodell von Photoshop 41

Verwenden des Text Item-Objekts


Sie knnen ein bereits vorhandenes ArtLayer-Objekt in eine Textebene umwandeln. Wenn die Ebene leer ist, wird in diesem Fall ein Text Item-Objekt erstellt. Entsprechend knnen Sie ein Text Item-Objekt in ein ArtLayer-Objekt umwandeln. Bei diesem umgekehrten Vorgang wird der Text im Layer-Objekt gerastert. Das Text Item-Objekt ist eine Eigenschaft des ArtLayer-Objekts. Wenn Sie jedoch eine neue Textebene erstellen mchten, mssen Sie zunchst ein neues ArtLayer-Objekt erstellen und als Eigenschaft kind/Kind/kind der Grafikebene dann text layer (2 (psTextLayer)/ LayerKind.TEXT) angeben. Wenn Sie Text in einer Textebene festlegen oder manipulieren mchten, mssen Sie das text-object (TextItem/TextItem)-Objekt verwenden, das in der Eigenschaft text object/TextItem/textItem des ArtLayer-Objekts enthalten ist.

Erstellen eines Text Item-Objekts


In den folgenden Beispielen wird zunchst ein ArtLayer-Objekt erstellt, das anschlieend mithilfe der Eigenschaft kind in eine Textebene umgewandelt wird. AS VBS
make new art layer in current document with properties { kind: text layer } set newLayerRef = docRef.ArtLayers.Add() newLayerRef.Kind = 2 '2 indicates psTextLayer var newLayerRef = docRef.artLayers.add() newLayerRef.kind = LayerKind.TEXT

JS

Weitere Informationen zum Zusammenhang zwischen ArtLayer-Objekten und TextItem-Objekten finden Sie unter Photoshop-Objektmodell auf Seite 11. Schlagen Sie auerdem Folgendes nach:

Die Eigenschaften Kind/kind und TextItem/textItem des ArtLayer-Objekts im Handbuch Adobe PhotoshopCS5 Visual Basic Scripting Reference bzw. Adobe PhotoshopCS5 JavaScript Scripting Reference oder im Visual Basic-Objektkatalog und im ExtendScript Object Model Viewer. Die Eigenschaften kind und text object der art layer-Klasse im Handbuch Adobe PhotoshopCS5 AppleScript Scripting Reference oder im Photoshop-AppleScript-Wrterbuch.

Festlegen einer Ebenenart


In den folgenden Beispielen wird mithilfe einer if-Anweisung berprft, ob es sich bei einer bereits vorhandenen Ebene um eine Textebene handelt. AS
if (kind of layerRef is text layer) then ... endif If layerRef.Kind = 2 Then '2 indicates psTextLayer ... End If if (newLayerRef.kind == LayerKind.TEXT) {...}

VBS

JS

KAPITEL 3: Skripting in Photoshop

Arbeiten mit dem Objektmodell von Photoshop 42

Hinzufgen und Manipulieren von Text in einem Text Item-Objekt


In den folgenden Beispielen wird einer Textebene Text hinzugefgt, der dann rechts ausgerichtet wird. AS
set layerRef to make new art layer in current document with properties {kind:text layer} set contents of text object of layerRef to "Hello, World!" set justification of text object of layerRef to right Set textLayerRef = docRef.ArtLayers.Add() textLayerRef.Kind = 2 textLayerRef.Name = "my text" Set textItemRef = docRef.ArtLayers("my text").TextItem textItemRef.Contents = "Hello, World!" textItemRef.Justification = 3 '3 = psRight (for the constant value psJustification)

VBS

JS

var textLayerRef = docRef.artLayers.add() textLayerRef.name = "my text" textLayerRef.kind = LayerKind.TEXT var textItemRef = docRef.artLayers["my text"].textItem textItemRef.contents = "Hello, World!" textItemRef.justification = Justification.RIGHT

HINWEIS: Das Objekt text-object (TextItem/TextItem) hat die Eigenschaft kind (Kind/kind), die entweder auf point text (psPointText/TextType.POINTTEXT ) oder auf paragraph text (psParagraphText/TextType.PARAGRAPHTEXT ) festgelegt werden kann. Bei Erstellung eines neuen Objekts des Typs text-object wird dessen Eigenschaft kind automatisch auf point text eingestellt. Die text-object-Eigenschaften height, width und leading sind nur gltig, wenn die Eigenschaft kind des Textelements auf paragraph text gesetzt ist. Fhren Sie folgende Schritte aus, um sich mit den Objekten, Eigenschaften und Befehlen in der Dokumentation vertraut zu machen:

Schlagen Sie im Handbuch Adobe PhotoshopCS5 AppleScript Scripting Reference oder im Photoshop-AppleScript-Wrterbuch die Eigenschaften und Methoden fr text-object nach. Schlagen Sie im Handbuch Adobe PhotoshopCS5 Visual Basic Scripting Reference oder im Visual Basic-Objektkatalog die Eigenschaft TextItem des ArtLayer-Objekts nach. Um herauszufinden, welche Eigenschaften und Methoden Sie mit einer Textebene verwenden knnen, schlagen Sie das TextItem-Objekt nach.

Schlagen Sie im Handbuch Adobe PhotoshopCS5 JavaScript Scripting Reference oder im ExtendScript Object Model Viewer die Eigenschaft textItem des ArtLayer-Objekts nach. Um herauszufinden, welche Eigenschaften und Methoden Sie mit einer Textebene verwenden knnen, schlagen Sie das TextItem-Objekt nach.

Arbeiten mit Selection-Objekten


Verwenden Sie ein Selection-Objekt, damit Ihre Skripten nur auf eine bestimmte Auswahl in Ihrem Dokument oder auf eine Ebene in Ihrem Dokument angewendet werden. Sie knnen z.B. Effekte auf eine Auswahl anwenden oder die aktuelle Auswahl in die Zwischenablage kopieren.

KAPITEL 3: Skripting in Photoshop

Arbeiten mit dem Objektmodell von Photoshop 43

Das Selection-Objekt ist ein untergeordnetes Objekt des Document-Objekts. Weitere Informationen erhalten Sie, wenn Sie Folgendes nachschlagen:

Schlagen Sie im Handbuch Adobe PhotoshopCS5 AppleScript Scripting Reference oder im Photoshop-AppleScript-Wrterbuch den Befehl select nach. Schlagen Sie auerdem die Eigenschaft selection des Document-Objekts und das selection-object-Objekt nach. Schlagen Sie im Handbuch Adobe PhotoshopCS5 Visual Basic Scripting Reference oder im Visual Basic-Objektkatalog Selection als Eigenschaft des Document-Objekts nach. Schlagen Sie auerdem Select als eine Methode des Selection-Objekts nach. Schlagen Sie im Handbuch Adobe PhotoshopCS5 JavaScript Scripting Reference oder im ExtendScript Object Model Viewer selection als Eigenschaft des Document-Objekts nach. Schlagen Sie auerdem select als eine Methode des Selection-Objekts nach.

HINWEIS: Sie knnen kein neues Selection-Objekt erstellen. Die Eigenschaft selection (Selection/selection) des Document-Objekts enthlt bereits ein Selection-Objekt fr das Dokument. Geben Sie den Bereich fr die Auswahl mit dem Befehl select (Select/select) an.

Erstellen und Definieren einer Auswahl


Zum Erstellen einer Auswahl verwenden Sie den Befehl select/Select/select() des Selection-Objekts. Zum Definieren einer Auswahl geben Sie die Bildschirmkoordinaten an, durch die die Ecken der Auswahl bestimmt werden. Da es sich bei Ihrem Dokument um ein zweidimensionales Objekt handelt, geben Sie die Koordinaten mithilfe der x- und der y-Achse an, wie im Folgenden beschrieben:

Verwenden Sie die x-Achse, um die horizontale Position auf der Arbeitsflche anzugeben. Verwenden Sie die y-Achse, um die vertikale Position auf der Arbeitsflche anzugeben.

Der Ursprung in Photoshop, also die Stelle, an der die Werte fr die x- und die y-Achse 0 sind, befindet sich in der linken oberen Ecke des Bildschirms. Die entgegengesetzte Ecke (rechts unten) ist der Extrempunkt der Arbeitsflche. Wenn die Gre Ihrer Arbeitsflche z.B. 1000x1000 Pixel betrgt, ist der Wert fr die xund die y-Achse in der rechten unteren Ecke 1000. Geben Sie Koordinatenpunkte an, die die Form beschreiben, die Sie als Array auswhlen mchten, das dann zum Argument oder Parameterwert fr den Befehl select/Select/select() wird. In den folgenden Beispielen wird davon ausgegangen, dass als Linealeinheit Pixel ausgewhlt wurden und dass auf folgende Weise eine Auswahl erstellt wird: 1. Erstellen einer Variable fr ein neues Dokument mit einer Gre von 500x500 Pixeln. 2. Erstellen einer Variable fr die Koordinaten, die den ausgewhlten Bereich (also das Selection-Objekt) beschreiben. 3. Hinzufgen eines Arrays als Variablenwert der Auswahl. 4. Verwenden der Eigenschaft selection des Document-Objekts und des Befehls select des Selection-Objekts zur Auswahl eines Bereichs. Die Koordinaten des Bereichs sind die Werte der Auswahlvariablen. AS
set docRef to make new document with properties {height:500, width:500} set shapeRef to {{0, 0}, {0, 100}, {100, 100}, {100, 0}} select current document region shapeRef DocRef = appRef.Documents.Add ShapeRef = Array(Array(0, 0), Array(0, 100), Array(100,100), Array(100,0)) docRef.Selection.Select ShapeRef

VBS

KAPITEL 3: Skripting in Photoshop

Arbeiten mit dem Objektmodell von Photoshop 44

JS

var docRef = app.documents.add(500, 500) var shapeRef = [ [0,0], [0,100], [100,100], [100,0] ] docRef.selection.select(shapeRef)

Zuweisen einer Kontur fr die Auswahlbegrenzung


Die folgenden Beispiele verwenden den Befehl stroke (Stroke/stroke()) des Selection-Objekts, um den Begrenzungen der aktuellen Auswahl eine Kontur zuzuweisen und die Farbe und Breite der Kontur festzulegen. HINWEIS: Fr Hintergrundebenen kann der Transparenzparameter verwendet werden. AS
stroke selection of current document using color {class:CMYK color, cyan:20, magenta:50, yellow:30, black:0} width 5 location inside blend mode vivid light opacity 75 without preserving transparency Set strokeColor = CreateObject ("Photoshop.SolidColor") strokeColor.CMYK.Cyan = 20 strokeColor.CMYK.Magenta = 50 strokeColor.CMYK.Yellow = 30 strokeColor.CMYK.Black = 0 appRef.ActiveDocument.Selection.Stroke strokeColor, 5, 1, 15, 75, False strokeColor = new solidColor strokeColor.cmyk.cyan = 20 strokeColor.cmyk.magenta = 50 strokeColor.cmyk.yellow = 30 strokeColor.cmyk.black = 0 app.activeDocument.selection.stroke (strokeColor, 2, StrokeLocation.OUTSIDE, ColorBlendMode.VIVIDLIGHT, 75, false)

VBS

JS

Umkehren von Auswahlen


Mit dem Befehl invert/Invert/invert() des Selection-Objekts knnen Sie eine Auswahl umkehren, sodass Sie den Rest des Dokuments, der Ebene oder des Kanals bearbeiten knnen, whrend die Auswahl geschtzt ist.

AS: VBS: JS:

invert selection of current document selRef.Invert selRef.invert()

Erweitern und Verkleinern ausgewhlter Bereiche und Hinzufgen weicher Kanten


Sie knnen die Gre eines ausgewhlten Bereichs mit den Befehlen expand, contract und feather ndern. Die Werte werden in den Linealeinheiten bermittelt, die in den Voreinstellungen von Photoshop gespeichert sind, und knnen mithilfe von Skripten gendert werden. Wenn die Linealeinheiten auf Pixel eingestellt sind, knnen ausgewhlte Bereiche mit den folgenden Beispielen erweitert, verkleinert und mit

KAPITEL 3: Skripting in Photoshop

Arbeiten mit dem Objektmodell von Photoshop 45

einer weichen Kante versehen werden. Dabei wird ein Wert von 5Pixeln verwendet. Beispiele zum ndern der Linealeinheiten finden Sie im Abschnitt Festlegen von Anwendungsvoreinstellungen auf Seite 32. AS
expand selection of current document by pixels 5 contract selection of current document by pixels 5 feather selection of current document by pixels 5 Dim selRef Set selRef = appRef.ActiveDocument.Selection selRef.Expand 5 selRef.Contract 5 selRef.Feather 5

VBS

JS

var selRef = app.activeDocument.selection selRef.expand( 5 ) selRef.contract( 5 ) selRef.feather( 5 )

Fllen einer Auswahl


Sie knnen eine Auswahl entweder mit einer Farbe oder mit einem Protokollobjekt fllen. So fllen Sie eine Auswahl mit einer Farbe: AS
fill selection of current document with contents {class:RGB color, red:255, green:0, blue:0} blend mode vivid light opacity 25 without preserving transparency Set fillColor = CreateObject("Photoshop.SolidColor") fillColor.RGB.Red = 255 fillColor.RGB.Green = 0 fillColor.RGB.Blue = 0 selRef.Fill fillColor, 15, 25, False var fillColor = new SolidColor() fillColor.rgb.red = 255 fillColor.rgb.green = 0 fillColor.rgb.blue = 0 app.activeDocument.selection.fill( fillColor, ColorBlendMode.VIVIDLIGHT, 25, false)

VBS

JS

So fllen Sie die aktuelle Auswahl mit dem zehnten Element im Protokollobjekt: HINWEIS: Weitere Informationen zu History State-Objekten finden Sie unter Verwenden von HistoryState-Objekten auf Seite 47. AS VBS JS
fill selection of current document with contents history state 10 of current document selRef.Fill docRef.HistoryStates(10) selRef.fill(app.activeDocument.historyStates[9])

Laden und Speichern von Auswahlen


Sie knnen Selection-Objekte in Channel-Objekten speichern bzw. aus diesen laden. Um eine Auswahl in einem Kanal zu speichern, sollte seine Eigenschaft kind (Kind/kind) auf einen Typ gesetzt sein, der angibt, dass im Kanal ein ausgewhlter Bereich gespeichert ist: selected area channel

KAPITEL 3: Skripting in Photoshop

Arbeiten mit dem Objektmodell von Photoshop 46

(psSelectedAreaAlphaChannel)/ ChannelType.SELECTEDAREA). Die folgenden Beispiele verwenden den Befehl store (Store/store()) des Selection-Objekts, um die aktuelle Auswahl in einem Kanal mit dem Namen My Channel zu speichern und die Auswahl um jede beliebige Auswahl zu erweitern, die zurzeit in diesem Kanal gespeichert ist. AS
set myChannel to make new channel of current document with properties {name:"My Channel", kind::selected area channel} store selection of current document into channel "My Channel" of current document combination type extended Set chanRef = docRef.Channels.Add chanRef.Name = "My Channel" chanRef.Kind = 3 'psSelectedAreaAlphaChannel docRef.Selection.Store docRef.Channels("My Channel"), 2 'PsSelectionType is 2 (psExtendSelection)

VBS

JS

var chanRef = docRef.channels.add() chanRef.name = "My Channel" chanRef.kind = ChannelType.SELECTEDAREA docRef.selection.store(docRef.channels["My Channel"], SelectionType.EXTEND)

Zum Wiederherstellen einer Auswahl, die in einem Channel-Objekt gespeichert wurde, verwenden Sie die Methode load (Load/load). AS
set myChannel to make new channel of current document with properties {name:"My Channel"} load selection of current document from channel "My Channel" of current document combination type extended selRef.Load docRef.Channels("My Channel"), 2 'PsSelectionType is 2 (psExtendSelection) selRef.load (docRef.channels["My Channel"], SelectionType.EXTEND)

VBS JS

Beispiele zum Kopieren, Ausschneiden und Einfgen von Auswahlen finden Sie unter Verwenden der Zwischenablage auf Seite 54.

Arbeiten mit Channel-Objekten


Das Channel-Objekt bietet Ihnen Zugriff auf eine Vielzahl der in Photoshop verfgbaren Funktionen fr Kanle. Sie knnen Kanle erstellen, lschen und duplizieren oder das Histogramm eines Kanals abrufen und seinen Typ ndern. Weitere Informationen zum Erstellen eines Channel-Objekts in Ihrem Skript finden Sie unter Erstellen neuer Objekte in einem Skript auf Seite 23. Sie knnen den Typ eines Channel-Objekts auch mithilfe der Eigenschaft kind festlegen oder abrufen. Skriptbeispiele, die zeigen, wie Sie einen Kanal fr einen ausgewhlten Bereich erstellen knnen, finden Sie unter Laden und Speichern von Auswahlen auf Seite 45.

ndern von Kanaltypen


Sie knnen bei allen Kanlen auer bei Komponentenkanlen die Eigenschaft kind ndern. Die folgenden Beispiele zeigen, wie Sie einen Kanal fr einen maskierten Bereich in einen Kanal fr einen ausgewhlten Bereich ndern knnen: HINWEIS: Komponentenkanle stehen in einer Beziehung zum Dokumentenmodus. In der Hilfe zu Photoshop finden Sie Informationen zu Kanlen, Kanaltypen und Dokumentmodi.

KAPITEL 3: Skripting in Photoshop

Arbeiten mit dem Objektmodell von Photoshop 47

AS VBS JS

set kind of myChannel to selected area channel channelRef.ind = 3 'for psSelectedAreaAlphaChannel 'from the constant value PsChannelType channelRef.kind = ChannelType.SELECTEDAREA

Verwenden des DocumentInfo-Objekts


In Photoshop knnen Sie einem Dokument mithilfe der Option Datei> Dateiinformationen Informationen zuordnen. Zum Abschlieen dieser Aufgabe in einem Skript verwenden Sie das Objekt info-object (DocumentInfo/DocumentInfo), das in der Eigenschaft info (Info/info) des Document-Objekts gespeichert ist. Die folgenden Beispiele zeigen die Verwendung des DocumentInfo-Objekts zum Festlegen des Copyright-Status und des Eigentmer-URLs eines Dokuments. AS
set get set set get docInfoRef to info of current document EXIF of docInfoRef copyrighted of docInfoRef to copyrighted work owner url of docInfoRef to "http://www.adobe.com" EXIF of docInfoRef

VBS

Set docInfoRef = docRef.Info docInfoRef.Copyrighted = 1 'for psCopyrightedWork docInfoRef.OwnerUrl = "http://www.adobe.com" docInfoRef = docRef.info docInfoRef.copyrighted = CopyrightedType.COPYRIGHTEDWORK docInfoRef.ownerUrl = "http://www.adobe.com"

JS

Weitere Informationen zu anderen Informationstypen (Eigenschaften), die Sie einem Dokument zuordnen knnen, erhalten Sie folgendermaen:

Schlagen Sie im Handbuch Adobe PhotoshopCS5 AppleScript Scripting Reference oder im Photoshop-AppleScript-Wrterbuch die Eigenschaften fr die Klasse info-object nach. Schlagen Sie im Handbuch Adobe PhotoshopCS5 Visual Basic Scripting Reference bzw. Adobe PhotoshopCS5 JavaScript Scripting Reference, im Visual Basic-Objektkatalog oder im ExtendScript Object Model Viewer die Eigenschaften fr das Objekt DocumentInfo nach.

Verwenden von HistoryState-Objekten


In Photoshop wird ein Protokoll aller Aktionen gefhrt, die Auswirkungen auf Dokumente haben. Jedes Mal, wenn Sie ein Bild in Photoshop ndern, erstellen Sie ein Protokollobjekt. Sie knnen ber die Protokollpalette auf die Protokollobjekte eines Dokuments zugreifen. Whlen Sie hierfr Fenster> Protokoll. Weitere Informationen zu Protokollobjekten finden Sie in der Hilfe zu Photoshop. In einem Skript knnen Sie mithilfe des HistoryStates-Objekts, das ein untergeordnetes Objekt des Document-Objekts ist, auf die Protokollobjekte eines Document-Objekts zugreifen. Mit einem HistoryStates-Objekt knnen Sie ein Dokument auf einen frheren Status zurcksetzen oder ein Selection-Objekt fllen. In den folgenden Beispielen wird das in der Variablen docRef enthaltene Dokument auf die Form und die Eigenschaften zurckgesetzt, ber die es verfgte, als es erstellt oder das erste Mal geffnet wurde. Wenn Sie die Protokollobjekte auf diese Weise verwenden, knnen Sie am Dokument vorgenommene nderungen rckgngig machen.

KAPITEL 3: Skripting in Photoshop

Arbeiten mit dem Objektmodell von Photoshop 48

AS VBS JS

set current history state of current document to history state 1 of current document docRef.ActiveHistoryState = docRef.HistoryStates(1) docRef.activeHistoryState = docRef.historyStates[0]

HINWEIS: Wenn Sie ein Dokument auf einen frheren Status zurcksetzen, werden sptere Statusangaben nicht aus der Protokollsammlung entfernt. Verwenden Sie den Befehl Purge, um sptere Statusangaben aus der History States-Sammlung zu entfernen:

AS: VBS: JS:

purge history caches appRef.Purge(2) 'for psPurgeTarget --> 2 (psHistoryCaches) app.purge(PurgeTarget.HISTORYCACHES)

Im unten stehenden Beispiel wird der aktuelle Status gespeichert, ein Filter angewendet und das Dokument anschlieend auf das gespeicherte Protokollobjekt zurckgesetzt. AS
set savedState to current history state of current document filter current layer of current document using motion blur with options {class:motion blur, angle:20, radius:20} set current history state of current document to savedState Set savedState = docRef.ActiveHistoryState docRef.ArtLayers(1).ApplyMotionBlur 20, 20 docRef.ActiveHistoryState = savedState savedState = docRef.activeHistoryState docRef.artLayers[0].applyMotionBlur( 20, 20 ) docRef.activeHistoryState = savedState

VBS

JS

Verwenden von Notifier-Objekten


Mit dem Notifier-Objekt knnen Sie ein Ereignis mit einem Skript verknpfen. Wenn Photoshop z.B. beim Starten der Anwendung automatisch ein neues Dokument erstellen soll, knnen Sie ein Skript verknpfen, das fr ein Open Application-Ereignis ein Document-Objekt erstellt. HINWEIS: Dieser Skripttyp entspricht dem Auswhlen der Option Anwendung starten im Skriptereignis-Manager (Datei> Skripten> Skriptereignis-Manager) in Photoshop. In der Hilfe zu Photoshop finden Sie weitere Informationen zum Verwenden des Skriptereignis-Managers. Beim Befehl make (Add/add) mssen Sie eine Ereignis-ID angeben, die das Ereignis identifiziert, fr das eine Benachrichtigung eingerichtet werden soll. Viele Ereignis-IDs finden Sie im Anhang der Handbcher Adobe PhotoshopCS5 JavaScript Scripting Reference, Adobe PhotoshopCS5 Visual Basic Scripting Reference und Adobe PhotoshopCS5 AppleScript Scripting Reference. Einige Ereignisse werden auerdem auf mehrere Objekttypen angewendet. Fr den Befehl make (Add/add) ist ein zustzliches Argument fr eine Klassen-ID erforderlich, die das Objekt identifiziert. Der Befehl Neu wird beispielsweise fr Document-, Art Layerund Channel-Objekte verwendet. HINWEIS: Mit dem ScriptListener knnen Sie fr alle aufnahmefhigen Ereignisse Ereignis- und Klassen-IDs festlegen. Siehe Suchen von Ereignis-IDs und Klassen-IDs ber ScriptListener auf Seite 81. Im folgenden Beispiel wird gezeigt, wie eine Ereignis-Benachrichtigung fr ein Open Document-Ereignis eingerichtet wird. Zunchst stellt das Skript sicher, dass die Ereignis-Benachrichtigung aktiviert ist, und richtet anschlieend das Ereignis ein, mit dem die Ausfhrung der Datei Startbildschirm.jsx ausgelst wird. Sobald das Skript abgeschlossen ist, lst es jedes Mal, wenn Sie ein Dokument auerhalb eines Skripts ffnen, die Benachrichtigung aus, die die .jsx-Datei ausfhrt. Diese .jsx-Datei zeigt ein Warn-Dialogfeld an.

KAPITEL 3: Skripting in Photoshop

Arbeiten mit dem Objektmodell von Photoshop 49

HINWEIS: Bei innerhalb eines Skripts ablaufenden Ereignissen erfolgt in der Regel keine Benachrichtigung, da diese Ereignisse in einem AdobeScriptAutomation Scripts-Ereignis eingebettet sind. AS
tell application "Adobe Photoshop CS5" try delete notifiers end try make new notifier with properties {event:"Opn ", event file:alias "OS X 10.5.8 US:Users:psauto:Desktop:Welcome.jsx"} end tell Dim appRef,eventFile Set appRef = CreateObject("Photoshop.Application") appRef.NotifiersEnabled = True eventFile = appRef.Path & "Presets\Scripts\Event Scripts Only\Welcome.jsx" appRef.Notifiers.Add "Opn ", eventFile

VBS

JS

app.notifiersEnabled = true var eventFile = new File(app.path + "/Presets/Scripts/Event Scripts Only/Welcome.jsx") app.notifiers.add("Opn ", eventFile)

Verwenden des PathItem-Objekts


Um ein PathItem-Objekt zu erstellen, mssen Sie dem PathItems-Element oder der Sammlung fr ein Dokument ein PathItem hinzufgen. Hierzu mssen Sie zunchst ein Array aus PathPointInfo-Objekten erstellen, die die Koordinaten der Ecken oder Ankerpunkte Ihres Pfades angeben. Anschlieend erstellen Sie ein Array aus SubPathInfo-Objekten, die die PathPoint-Arrays enthalten sollen. Sobald Sie die Punkte und einen Unterpfad erstellt haben, knnen Sie ein neues PathItem hinzufgen. Das folgende Skript erstellt ein PathItem-Objekt, bei dem es sich um eine gerade Linie handelt. AS
--line #1--its a straight line so the coordinates for anchor, left, and --right for each point have the same coordinates tell application "Adobe Photoshop CS5" set ruler units of settings to pixel units set type units of settings to pixel units set docRef to make new document with properties {height:700, width:500, name:"Snow Cone"} set pathPointInfo1 to {class:path point info, kind:corner point, anchor:{100, 100}, left direction:{100, 100}, right direction:{100, 100}} set pathPointInfo2 to {class:path point info, kind:corner point, anchor:{150, 200}, left direction:{150, 200}, right direction:{150, 200}} set subPathInfo1 to {class:sub path info, entire sub path:{pathPointInfo1, pathPointInfo2}, operation:shape xor, closed:false} set newPathItem to make new path item in docRef with properties {entire path:{subPathInfo1}, name:"Line", kind:normal} end tell

KAPITEL 3: Skripting in Photoshop

Arbeiten mit dem Objektmodell von Photoshop 50

VBS

Dim appRef, docRef Dim lineArray(1), lineArray2(1), lineSubPathArray(0), myPathItem Set appRef = CreateObject("Photoshop.Application") ' create a document to work with Set docRef = appRef.Documents.Add(5000, 7000, 72, "Simple Line")

'line #1--its a straight line so the coordinates for anchor, left, and 'right for each point have the same coordinates 'First create the array of PathPointInfo objects. The line has two points, 'so there are two PathPointInfo objects. Set lineArray(0) = CreateObject("Photoshop.PathPointInfo") lineArray(0).Kind = 2 ' for PsPointKind --> 2 (psCornerPoint) lineArray(0).Anchor = Array(100, 100) lineArray(0).LeftDirection = lineArray(0).Anchor lineArray(0).RightDirection = lineArray(0).Anchor Set lineArray(1) = CreateObject("Photoshop.PathPointInfo") lineArray(1).Kind = 2 lineArray(1).Anchor = Array(150, 200) lineArray(1).LeftDirection = lineArray(1).Anchor lineArray(1).RightDirection = lineArray(1).Anchor 'Next create a SubPathInfo object, which will hold the line array 'in its EntireSubPath property. Set lineSubPathArray(0) = CreateObject("Photoshop.SubPathInfo") lineSubPathArray(0).Operation = 2 'for PsShapeOperation --> 2 (psShapeXOR) lineSubPathArray(0).Closed = false lineSubPathArray(0).EntireSubPath = lineArray 'create the PathItem object using Add. This method takes the SubPathInfo object 'and returns a PathItem object, which is added to the pathItems collection 'for the document. Set myPathItem = docRef.PathItems.Add("A Line", lineSubPathArray) ' stroke it so we can see something myPathItem.StrokePath(2) 'for PsToolType --> 2 (psBrush)

JS

// create a document to work with var docRef = app.documents.add(5000, 7000, 72, "Simple Line") //line #1--its a straight line so the coordinates for anchor, left, and //right //for each point have the same coordinates // First create the array of PathPointInfo objects. The line has two points, // so there are two PathPointInfo objects. var lineArray = new Array() lineArray[0] = new PathPointInfo lineArray[0].kind = PointKind.CORNERPOINT lineArray[0].anchor = Array(100, 100) lineArray[0].leftDirection = lineArray[0].anchor lineArray[0].rightDirection = lineArray[0].anchor lineArray[1] = new PathPointInfo lineArray[1].kind = PointKind.CORNERPOINT lineArray[1].anchor = Array(150, 200) lineArray[1].leftDirection = lineArray[1].anchor lineArray[1].rightDirection = lineArray[1].anchor

KAPITEL 3: Skripting in Photoshop

Arbeiten mit Color-Objekten 51

// Next create a SubPathInfo object, which holds the line array // in its entireSubPath property. var lineSubPathArray = new Array() lineSubPathArray[0] = new SubPathInfo() lineSubPathArray[0].operation = ShapeOperation.SHAPEXOR lineSubPathArray[0].closed = false lineSubPathArray[0].entireSubPath = lineArray //create the path item, using add. This method takes the SubPathInfo object //and returns a PathItem object, which is added to the pathItems collection // for the document. var myPathItem = docRef.pathItems.add("A Line", lineSubPathArray); // stroke it so we can see something myPathItem.strokePath(ToolType.BRUSH)

Arbeiten mit Color-Objekten


Sie knnen in Ihren Skripten denselben Farbbereich verwenden, der in der Benutzeroberflche von Photoshop zur Verfgung steht. Jedes Farbmodell verfgt ber einen eigenen Eigenschaftensatz. So enthlt z.B. die RGB color-Klasse (RGBColor/RGBColor) drei Eigenschaften: rot, blau und grn. Wenn Sie eine Farbe in dieser Klasse festlegen mchten, geben Sie Werte fr alle drei Eigenschaften an. In VBScript und JavaScript enthlt die SolidColor-Klasse eine Eigenschaft fr jedes Farbmodell. Wenn Sie dieses Objekt verwenden mchten, erstellen Sie zunchst eine Instanz eines SolidColor-Objekts und legen dann entsprechende Farbmodelleigenschaften fr das Objekt fest. Sobald einem SolidColor-Objekt ein Farbmodell zugewiesen wurde, kann das SolidColor-Objekt keinem anderen Farbmodell mehr zugewiesen werden. Die folgenden Beispiele zeigen, wie Sie mithilfe der CMYK color-Klasse eine Farbe festlegen knnen. AS VBS
set foreground color to {class:CMYK color, cyan:20.0, magenta:90.0, yellow:50.0, black:50.0} 'create a solidColor array Dim solidColorRef Set solidColorRef = CreateObject("Photoshop.SolidColor") solidColorRef.CMYK.Cyan = 20 solidColorRef.CMYK.Magenta = 90 solidColorRef.CMYK.Yellow = 50 solidColorRef.CMYK.Black = 50 appRef.ForegroundColor = solidColorRef //create a solid color array var solidColorRef = new solidColor() solidColorRef.cmyk.cyan = 20 solidColorRef.cmyk.magenta = 90 solidColorRef.cmyk.yellow = 50 solidColorRef.cmyk.black = 50 foregroundColor = solidColorRef

JS

KAPITEL 3: Skripting in Photoshop

Arbeiten mit Color-Objekten 52

Volltonfarben-Klassen
Im Folgenden finden Sie eine bersicht ber die in Photoshop verfgbaren Farbklassen. Farbklassen VolltonFarbe

RGBFarbe

CMYKFarbe

Graue Farbe

HSBFarbe

LabFarbe

Keine Farbe

Verwenden von Hexadezimalwerten fr RGB-Farben


Sie knnen RGB-Farben als Hexadezimalwerte ausdrcken. Ein Hexadezimalwert enthlt drei Zahlenpaare, die fr die Farben Rot, Blau und Grn stehen (in dieser Reihenfolge). In AppleScript wird der Hexadezimalwert als Zeichenfolge durch die Eigenschaft hex value in der Klasse RGB hex color dargestellt und Sie verwenden den unten beschriebenen Befehl convert color zum Abrufen des Hexadezimalwerts. In VBScript und JavaScript wird das RGBColor-Objekt durch die Eigenschaft HexValue/hexValue als Zeichenfolge dargestellt.

Abrufen und Konvertieren von Farben


In den folgenden Beispielen wird eine RGB-Farbe in ihr CMYK-quivalent konvertiert. AS Das folgende, von einem RGB-Farbmodell ausgehende Skript ruft die Vordergrundfarbe ab und verwendet anschlieend den Befehl convert der color-Klasse, um die Farbe in ihr CMYK-quivalent zu konvertieren.
get foreground color convert color foreground color to CMYK

Schlagen Sie Folgendes im Handbuch Adobe PhotoshopCS5 AppleScript Scripting Reference oder im Photoshop-AppleScript-Wrterbuch nach:

Im Abschnitt Objects (Objekte) die Eigenschaft foreground color der Klasse application Im Abschnitt Commands (Befehle) den Befehl convert

VBS

Das folgende Skript verwendet eine If Then-Anweisung und die Eigenschaft model des SolidColor-Objekts zum Feststellen des verwendeten Farbmodells. Die If Then-Anweisung gibt ein SolidColor-Objekt zurck. Wenn sie ein RGB-Objekt zurckgibt, ermglicht die Eigenschaft cmyk des SolidColor-Objekts es Ihnen, ber das CMYK-quivalent auf die Farbe zuzugreifen.
Dim someColor If (someColor.model = 2) Then someColor.cmyk 'someColor.model = 2 indicates psColorModel --> 2 (psRGBModel) End If

KAPITEL 3: Skripting in Photoshop

Arbeiten mit Filtern 53

Schlagen Sie Folgendes im Handbuch Adobe PhotoshopCS5 Visual Basic Scripting Reference oder im Visual Basic-Objektkatalog nach:
model und cmyk als Eigenschaften des SolidColor-Objekts

JS

In diesem Beispiel wird die Eigenschaft foregroundColor des Application-Objekts zum Abrufen der ursprnglichen Farbe verwendet, die konvertiert werden soll. Die Eigenschaft cmyk des SolidColor-Objekts, auf die foregroundColor verweist, bietet die Mglichkeit, auf das CMYK-quivalent der RGB-Farbe zuzugreifen.
var someColor = foregroundColor.cmyk

Schlagen Sie Folgendes im Handbuch Adobe PhotoshopCS5 JavaScript Scripting Reference oder im ExtendScript Object Model Viewer nach:
cmyk als eine Eigenschaft des SolidColor-Objekts foregroundColor als eine Eigenschaft des Application-Objekts

Vergleichen von Farben


Sie knnen Farben mit dem Befehl equal colors (IsEqual/isEqual) vergleichen. Die folgende Anweisung gibt den Wert true zurck, wenn die Vordergrundfarbe optisch mit der Hintergrundfarbe identisch ist.

AS: VBS: JS:

if equal colors foreground color with background color then If (appRef.ForegroundColor.IsEqual(appRef.BackgroundColor)) Then if (app.foregroundColor.isEqual(backgroundColor))

Abrufen einer websicheren Farbe


Verwenden Sie zum Konvertieren einer Farbe in eine websichere Farbe in AppleScript den Befehl web safe color und in VBScript und JavaScript die Eigenschaft NearestWebColor/nearestWebColor des SolidColor-Objekts. AS VBS JS
set myWebSafeColor to web safe color for foreground color Dim myWebSafeColor Set myWebSafeColor = appRef.ForegroundColor.NearestWebColor var webSafeColor = new RGBColor() webSafeColor = app.foregroundColor.nearestWebColor

Arbeiten mit Filtern


Zum Anwenden eines Filters in AppleScript verwenden Sie den Befehl filter und eine Option aus der Klasse filter options. In VBScript und JavaScript verwenden Sie eine spezifische Filtermethode. Zum Anwenden eines Gauschen Weichzeichners verwenden Sie z.B. die Methode ApplyGaussianBlur/applyGaussianBlur(). Alle Filtermethoden sind Teil des ArtLayer-Objekts. HINWEIS: In der Hilfe zu Photoshop finden Sie weitere Informationen zu den durch einzelne Filtertypen erzeugten Effekten. In den folgenden Beispielen wird der Gausche Weichzeichner auf die aktive Ebene angewendet.

KAPITEL 3: Skripting in Photoshop

Verwenden der Zwischenablage 54

AS

Verwenden Sie den Befehl filter und geben Sie anschlieend die Ebene, den Namen des Filters und alle erforderlichen Optionen an.
filter current layer of current document using gaussian blur with options {radius:5}

HINWEIS: Schlagen Sie im Handbuch Adobe PhotoshopCS5 AppleScript Scripting Reference oder im Photoshop-AppleScript-Wrterbuch den Befehl filter und die Klasse filter options nach. VBS
appRef.docRef.ActiveLayer.ApplyGaussianBlur 5

HINWEIS: Schlagen Sie im Handbuch Adobe PhotoshopCS5 Visual Basic Scripting Reference oder im Visual Basic-Objektkatalog die Methode ApplyGaussianBlur sowie andere Methoden des ArtLayer-Objekts nach, deren Name mit Apply beginnt. JS
docRef.activeLayer.applyGaussianBlur(5)

HINWEIS: Schlagen Sie im Handbuch Adobe PhotoshopCS5 JavaScript Scripting Reference oder im ExtendScript Object Model Viewer die Methode applyGaussianBlur() sowie andere Methoden des artLayer-Objekts nach, deren Name mit apply beginnt.

Sonstige Filter
Wenn der Filtertyp, den Sie in Ihrer Ebene verwenden mchten, nicht Teil der Skripting-Oberflche ist, knnen Sie den Filter mithilfe des Action Manager in JavaScript ausfhren. Wenn Sie AppleScript oder VBScript verwenden, knnen Sie das JavaScript von Ihrem Skript aus aufrufen. Informationen zum Verwenden des Action Manager finden Sie unter Action Manager auf Seite 73. Siehe auch Ausfhren von JavaScripts aus AS oder VBS auf Seite 10.

Verwenden der Zwischenablage


Die Befehle fr die Zwischenablage in Photoshop knnen fr ArtLayer-, Selection- und Document-Objekte verwendet werden. Die Befehle knnen auf Objekte in einem einzelnen Dokument angewendet oder zum Verschieben von Informationen zwischen Dokumenten verwendet werden. Es sind folgende Zwischenablage-Befehle des art layer (ArtLayer/ArtLayer)- und des selection (Selection/Selection)-Objekts verfgbar:
copy (Copy/copy) copy merged (Copy Merge parameter value/copy(merge parameter value)) cut(Cut/cut)

Es sind folgende Zwischenablage-Befehle des document/Document/Document-Objekts verfgbar:


paste (Paste/paste) paste into (Paste IntoSelection parameter value/paste(intoSelection parameter value))

HINWEIS: Informationen zu den Funktionen copy, copy merged, paste, paste into und cut finden Sie in der Hilfe zu Photoshop.

Verwenden der Befehle zum Kopieren und Einfgen


In den folgenden Beispielen wird der Inhalt der Hintergrundebene in die Zwischenablage kopiert, anschlieend wird ein neues Dokument erstellt und der Inhalt der Zwischenablage in das neue Dokument eingefgt. Bei den Skripten wird davon ausgegangen, dass in Photoshop bereits ein Dokument geffnet ist und dass das Dokument ber eine Hintergrundebene verfgt.

KAPITEL 3: Skripting in Photoshop

Verwenden der Zwischenablage 55

HINWEIS: Wenn Sie mit Ihrem Skript ein neues Dokument erstellen, in das Sie den Inhalt der Zwischenablage einfgen, stellen Sie sicher, dass das Dokument dieselbe Linealeinheit verwendet wie das ursprngliche Dokument. Weitere Informationen finden Sie unter Festlegen von Anwendungsvoreinstellungen auf Seite 32. AS HINWEIS: Unter MacOS muss sich Photoshop im Vordergrund befinden, wenn diese Befehle ausgefhrt werden. Sie mssen den Befehl activate zum Aktivieren der Anwendung ausfhren, bevor Sie Befehle fr die Zwischenablage ausfhren.
tell application "Adobe Photoshop CS5" activate select all of current document copy set current layer of current document to layer "Background" of current document set newDocRef to make new document paste newDocRef end tell

VBS

'make firstDocument the active document Set docRef = appRef.ActiveDocument docRef.ArtLayers("Background").Copy Set newDocRef = appRef.Documents.Add(8, 6, 72, "New Doc") newDocRef.Paste

JS

//make firstDocument the active document var docRef = app.activeDocument docRef.artLayers["Background"].copy() var newDocRef = app.documents.add(8, 6, 72, "New Doc") newDocRef.paste()

Verwenden des Befehls/der Methode Auf eine Ebene reduziert kopieren


Sie knnen beim Kopieren auch alle Ebenen im ausgewhlten Bereich auf eine Ebene reduziert kopieren. In AppleScript verwenden Sie den Befehl copy merged. In VBScript und JavaScript verwenden Sie den Befehl Copy/copy und geben den Wert True/true fr den optionalen Parameter merge ein. AS HINWEIS: Unter MacOS muss sich Photoshop im Vordergrund befinden, wenn diese Befehle ausgefhrt werden. Sie mssen den Befehl activate zum Aktivieren der Anwendung ausfhren, bevor Sie Befehle fr die Zwischenablage ausfhren.
set docRef to make new document make new art layer of docRef select all of docRef copy merged selection of docRef

VBS

docRef.Selection.Copy True

Schlagen Sie die Methode Copy fr ArtLayer- und Selection-Objekte im Handbuch Adobe PhotoshopCS5 Visual Basic Scripting Reference oder im Visual Basic-Objektkatalog nach. JS
docRef.selection.copy(true)

Schlagen Sie die Methode copy() fr ArtLayer- und Selection-Objekte im Handbuch Adobe PhotoshopCS5 JavaScript Scripting Reference oder im ExtendScript Object Model Viewer nach.

KAPITEL 3: Skripting in Photoshop

Arbeiten mit Maeinheiten 56

Arbeiten mit Maeinheiten


In Photoshop sind zwei Lineale fr Dokumente vorhanden. Mit Eigenschaften fr das settings-object (Preferences/Preferences)-Objekt knnen Sie die Maeinheit fr Lineale in Ihrem Skript festlegen. Folgende Lineale sind verfgbar:

Ein Grafiklineal, das fr die meisten grafischen Layoutmae oder -vorgnge in einem Dokument verwendet wird, bei denen Hhe, Breite oder Position angegeben werden. Die Maeinheit fr das Grafiklineal legen Sie mithilfe der Eigenschaft ruler units (RulerUnits/rulerUnits) fest.

Ein Textlineal, das bei Verwendung des Textwerkzeugs aktiv ist. Die Maeinheit fr das Textlineal legen Sie mithilfe der Eigenschaft type units (TypeUnits/typeUnits) fest.

HINWEIS: Diese Einstellungen entsprechen jenen im Dialogfeld Voreinstellungen von Photoshop, auf die Sie ber Photoshop> Voreinstellungen> Maeinheiten& Lineale (MacOS) bzw. Bearbeiten> Voreinstellungen> Maeinheiten& Lineale (Windows) zugreifen.

Maeinheitenwerte
Alle Sprachen untersttzen bei Maeinheitenwerten gewhnliche Zahlen. Diese Werte werden so behandelt, als ob sie in dem Typ vorlgen, der zurzeit fr das entsprechende Lineal angegeben ist. Wenn als Linealeinheit z.B. Zoll ausgewhlt ist, wird mit folgender VBScript-Anweisung die Gre eines Dokuments auf 3Zollx3Zoll festgelegt:
docRef.ResizeImage 3,3

Wre als Linealeinheit Pixel ausgewhlt, wre das Dokument 3Pixelx3Pixel gro. Stellen Sie sicher, dass Sie mit Skripten die gewnschten Ergebnisse erzielen, indem Sie die Linealeinheiten berprfen und auf den fr Ihr Skript erforderlichen Typ einstellen. Nach dem Ausfhren eines Skripts sollten die ursprnglichen Werte der Linealeinstellungen wiederhergestellt werden, wenn sie durch das Skript gendert wurden. Hinweise zum Festlegen von Maeinheitenwerten finden Sie unter Festlegen von Lineal- und Texteinheiten in einem Skript auf Seite 59. Informationen zu den verfgbaren Datentypen fr Maeinheitenwerte finden Sie in der Hilfe zu Photoshop.

Besondere Datentypen fr Maeinheitenwerte


Bei den in Photoshop verwendeten Maeinheitenwerten handelt es sich um Lngeneinheiten, die Werte fr lineare Maangaben darstellen. Darber hinaus untersttzt die Anwendung bei Maeinheiten die Verwendung von Pixel- und Prozentwerten. Bei diesen beiden Datentypen fr Maeinheitenwerte handelt es sich genau genommen nicht um Lngeneinheiten; sie wurden aber dennoch aufgenommen, da sie in Photoshop fr eine Vielzahl von Vorgngen und Werten verwendet werden.

berlegungen zu Maeinheiten in AppleScript


AppleScript bietet eine weitere Mglichkeit fr die Arbeit mit Maeinheiten. Wenn Maeinheiten verwendet werden, knnen Sie Werte in einem expliziten Maeinheitentyp angeben. Wenn ein Wert angegeben ist, wird die aktuelle Einstellung des Lineals durch diesen Typ berschrieben. Wenn Sie z.B. ein Dokument erstellen mchten, das 4Zoll breit und 5Zoll hoch ist, wrden Sie Folgendes schreiben:
make new document with properties {width:inches 4, height:inches 5}

KAPITEL 3: Skripting in Photoshop

Arbeiten mit Maeinheiten 57

Die Werte, die in Photoshop fr eine auf Maeinheiten basierende Eigenschaft verwendet werden, werden als Wert des aktuellen Linealtyps zurckgegeben. Das Abrufen der Hhe des oben erstellten Dokuments mit
set docHeight to height of current document

gibt einen Wert von 5,0 zurck, der auf der Grundlage der aktuellen Linealeinstellungen 5Zoll entspricht. In AppleScript knnen Sie optional einen Eigenschaftswert als bestimmten Typ abfragen.
set docHeight to height of current document as points

Hierdurch wird ein Wert von 360 zurckgegeben (5Zollx 72Punkt pro Zoll). Bei den Datentypen fr die Maeinheiten points und picas handelt es sich um PostScript-Punkte mit 72Punkt pro Zoll. Die Datentypen fr die Maeinheiten traditional points und traditional picas basieren auf traditionellen Schriftsatzwerten mit 72,27Punkt pro Zoll. Sie knnen einen Wert fr Maeinheiten aus einem Maeinheitentyp in einen anderen konvertieren oder erzwingen. Mit dem folgenden Skript konvertieren Sie z.B. einen Punktwert in einen Zollwert.
set pointValue to 72 as points set inchValue to pointValue as inches

Wenn dieses Skript ausgefhrt wird, enthlt die Variable inchValue den Zollwert 1, also 72Punkt in Zoll konvertiert. Diese Mglichkeit der Konvertierung ist Teil der AppleScript-Sprache. HINWEIS: Die Maeinheitenwerte cm units und mm units knnen nicht in dieser Weise mit einem entsprechenden Verweis auf cm oder mm verwendet werden. Sie werden nicht von der AppleScript-Terminologie untersttzt.

Verwenden von Maeinheitenwerten in Berechnungen


Wenn Sie in AppleScript einen Maeinheitenwert in einer Berechnung verwenden mchten, mssen Sie zunchst den Wert in eine Zahl konvertieren (der Maeinheitenwert kann nicht direkt in Berechnungen verwendet werden). Wenn Sie einen Zollwert multiplizieren mchten, schreiben Sie Folgendes:
set newValue to (inchValue as number) * 5

HINWEIS: In AppleScript knnen Sie Werte als Pixel- oder Prozentwerte abrufen oder festlegen, wie Sie das auch mit allen anderen Datentypen fr Maeinheiten tun wrden. Es ist jedoch nicht mglich, einen Pixel- oder Prozentwert in einen anderen Lngenwert fr Maeinheiten zu konvertieren, wie dies mit andern Lngenwerten fr Maeinheiten mglich ist. Der Versuch, das folgende Skript auszufhren, fhrt zu einem Fehler.
set pixelValue to 72 as pixels -- Next line will result in a coercion error when run set inchValue to pixelValue as inches

HINWEIS: Da es sich bei Photoshop um eine pixelorientierte Anwendung handelt, erhalten Sie mglicherweise nicht immer dieselben Werte, die Sie beim Festlegen eines Wertes bermitteln. Wenn fr ruler units z.B. die Maeinheit mm ausgewhlt ist und Sie ein Dokument von 30x30 erstellen, wird fr die Hhe bzw. Breite der Wert 29,99 zurckgegeben, wenn die Dokumentauflsung auf 72ppi eingestellt ist. Die Skripting-Oberflche geht davon aus, dass Einstellungen in ppi gemessen werden.

Verwendung von Maeinheitenwerten


In den folgenden Tabellen werden die Eigenschaften der Klassen/Objekte aufgelistet, die fr die Verwendung von Maeinheitenwerten definiert sind. Die Maeinheitenwerte fr diese Eigenschaften basieren, sofern in der Tabelle nicht anders angegeben, auf der Einstellung fr das Grafiklineal.

KAPITEL 3: Skripting in Photoshop

Arbeiten mit Maeinheiten 58

Fhren Sie zum Verwenden der Tabelle einen der folgenden Schritte aus:

Schlagen Sie die Eigenschaften der Klasse im Handbuch Adobe PhotoshopCS5 AppleScript Scripting Reference oder im Photoshop-AppleScript-Wrterbuch nach. Schlagen Sie die Eigenschaft des Objekts im Handbuch Adobe PhotoshopCS5 Visual Basic Scripting Reference bzw. Adobe PhotoshopCS5 JavaScript Scripting Reference, im Visual Basic-Objektkatalog oder im ExtendScript Object Model Viewer nach. Eigenschaften in AppleScript
height width height width height width height width horizontal offset vertical offset baseline shift* first line indent* height hyphenation zone* leading* left indent* position right indent* space before* space after* width

Klasse/Objekt
Document

Eigenschaften in VBScript
Height Width Height Width Height Width Height Width HorizontalOffset VerticalOffset BaselineShift* FirstLineIndent* Height HyphenationZone* Leading* LeftIndent* Position RightIndent* SpaceBefore* SpaceAfter* Width

Eigenschaften in JavaScript
height width height width height width height width horizontalOffset verticalOffset baselineShift* firstLineIndent* height hyphenationZone* leading* leftIndent* position rightIndent* spaceBefore* spaceAfter* width

EPS open options

PDF open options

lens flare open options

offset filter

Text Item

* Auf Textlinealeinheiten basierende Maeinheitenwerte. In der folgenden Tabelle sind die Befehle aufgelistet, die Maeinheitenwerte als Parameter oder Argumente verwenden. In einigen Fllen sind die Parameter erforderlich. Den VBScript- und JavaScript-Methoden sind die Objekte vorangestellt, zu denen sie gehren. So verwenden Sie diese Tabelle:

Bei AppleScript-Befehlen schlagen Sie den Befehl im Kapitel Commands (Befehle) des Handbuchs Adobe PhotoshopCS5 AppleScript Scripting Reference oder im Photoshop-AppleScript-Wrterbuch nach. Bei VBScript-Methoden schlagen Sie die Methode in der Tabelle Methods (Methoden) fr das Objekt im Kapitel Interface (Schnittstelle) des Handbuchs Adobe PhotoshopCS5 Visual Basic Scripting Reference oder im Visual Basic-Objektkatalog nach. Bei JavaScript-Methoden schlagen Sie die Methode in der Tabelle Methods (Methoden) fr das Objekt im Kapitel Object Reference (Objektverweise) des Handbuchs Adobe PhotoshopCS5 JavaScript Scripting Reference oder im ExtendScript Object Model Viewer nach.

KAPITEL 3: Skripting in Photoshop

Arbeiten mit Maeinheiten 59

AppleScript
crop (bounds, height, width) resize canvas (height, width) resize image (height, width) contract (by) expand (by) feather (by) select border (width) translate (delta x, delta y) translate boundary (delta x, delta y)

VBScript
Document.Crop (Bounds, Height, Width) Document.ResizeCanvas (Height, Width) Document.ResizeImage (Height, Width) Selection.Contract (By) Selection.Expand (By) Selection.Feather (By) Selection.SelectBorder (Width) Selection.Translate (DeltaX, DeltaY) Selection.TranslateBoundary (DeltaX, DeltaY)

JavaScript
document.crop (bounds, height, width) document.resizeCanvas (height, width) document.resizeImage (height, width) selection.contract (by) selection.expand (by) selection.feather (by) selection.selectBorder (width) selection.translate (deltaX, deltaY) selection.translateBoundary (deltaX, deltaY)

Festlegen von Lineal- und Texteinheiten in einem Skript


Mit den Einstellungen der Maeinheitentypen fr die beiden Lineale in Photoshop wird gesteuert, wie Zahlen bei der Verwendung von Eigenschaften und Parametern interpretiert werden, die Maeinheitenwerte untersttzen. Stellen Sie sicher, dass Sie am Anfang Ihrer Skripten die Linealeinheiten Ihrem Bedarf entsprechend festlegen und dass Sie die ursprnglichen Linealeinstellungen nach Abschluss des Skripts wiederherstellen. AS In AppleScript sind ruler units und type units Eigenschaften des settings-object, auf das Sie ber die Eigenschaft settings des Application-Objekts zugreifen (siehe unten).
set ruler units of settings to inch units set type units of settings to pixel units set point size of settings to postscript size

VBS

In VBScript sind RulerUnits und TypeUnits Eigenschaften des Preferences-Objekts, auf das Sie ber die Eigenschaft Preferences des Application-Objekts zugreifen (siehe unten).
appRef.Preferences.RulerUnits = 2 'for PsUnits --> 1 (psInches) appRef.Preferences.TypeUnits = 1 'for PsTypeUnits --> 1 (psPixels) appRef.Preferences.PointSize = 2 '2 indicates psPointType --> 2 (PsPostScriptPoints)

JS

In JavaScript sind rulerUnits und typeUnits Eigenschaften des Preferences-Objekts, auf das Sie ber die Eigenschaft preferences des Application-Objekts zugreifen (siehe unten).
app.preferences.rulerUnits = Units.INCHES app.preferences.typeUnits = TypeUnits.PIXELS app.preferences.pointSize = PointType.POSTSCRIPT

HINWEIS: Vergessen Sie nicht, die Maeinheiteneinstellungen am Ende eines Skripts wieder auf die ursprnglichen Werte zurckzusetzen. Ein Beispiel hierfr finden Sie unter Arbeiten mit Voreinstellungen fr Dokumente auf Seite 61.

KAPITEL 3: Skripting in Photoshop

JavaScript-Beispiele fr die Automatisierung des Workflows 60

JavaScript-Beispiele fr die Automatisierung des Workflows


Die folgenden JavaScript-Beispiele fr die Automatisierung des Workflows sind im Lieferumfang von Photoshop enthalten und zeigen verschiedene Verwendungsmglichkeiten fr Skripten. Die Skripten befinden sich im Ordner Vorgaben\Skripten im Anwendungsordner. Weitere Informationen zum Ordner Vorgaben\Skripten finden Sie unter Erstellen und Ausfhren eines JavaScripts auf Seite 19. Skriptname
Layer Comps to Files.jsx Layer Comps to PDF.jsx Layer Comps to WPG.jsx Export Layers to Files.jsx Script Events Manager.jsx Image Processor.jsx Load Files into Stack.jsx Merge to HDR.jsx

Beschreibung Speichert Ebenenkomp. als Dateien. Speichert Ebenenkomp. als PDF-Prsentation. Speichert Ebenenkomp. als Web-Fotogalerie. Exportiert jede Ebene im Dokument in eine separate Datei. Aktiviert und deaktiviert Notifier-Objekte. Verarbeitet Camera Raw-Bilder in verschiedenen Dateiformaten. Ldt separate Dateien in einen Bildstapel in nur einem Dokument. Kombiniert mehrere Bilder mit der gleichen Szene oder dem gleichen Bild und erfasst dabei den dynamischen Bereich einer Szene in einem HDR-Bild (High Dynamic Range).

Erweiterte Skripterstellung
In diesem Abschnitt wird gezeigt, wie Sie die Informationen aus den vorhergehenden Abschnitten dieses Kapitels zum Erstellen von Skripten verwenden knnen, die folgende Aufgaben ausfhren:

Konfigurieren von Voreinstellungen fr Dokumente Anwenden von Farbe auf Textelemente In diesem Abschnitt erfahren Sie auch, wie Sie folgende Aufgaben ausfhren knnen:

Erstellen eines Verweises auf ein vorhandenes Dokument. Erstellen eines Ebenenobjekts und Umwandeln der Ebene in eine Textebene.

Rastern von Text, sodass die Verarbeitungsmethoden wave und blur auf Wrter angewendet werden knnen. In diesen Abschnitten erfahren Sie auch, wie Sie folgende Aufgaben ausfhren knnen:

Auswhlen und Bearbeiten eines bestimmten Bereichs einer Ebene durch Erstellen eines Auswahlobjekts. Anwenden von Schwingungen-Filtern und Weichzeichnern auf den ausgewhlten Text.

HINWEIS: Wenn Sie die Lektionen in den folgenden Abschnitten abgeschlossen haben, speichern Sie die Skripten, die Sie in den Lektionen erstellt haben. Jede Lektion baut auf dem Skript auf, das in der vorherigen Lektion erstellt wurde.

KAPITEL 3: Skripting in Photoshop

Erweiterte Skripterstellung 61

Arbeiten mit Voreinstellungen fr Dokumente


Mit den Beispielskripten in diesem Abschnitt wird ein Application-Objekt in Photoshop aktiviert. Anschlieend werden die Standard-Konfigurationseinstellungen in Variablen gespeichert, sodass sie zu einem spteren Zeitpunkt nach Abschluss des Skripts wiederhergestellt werden knnen. Es handelt sich hierbei um die Standardkonfigurationen, die Sie wahrscheinlich im Dialogfeld Voreinstellungen festgelegt haben, als Sie Photoshop zum ersten Mal gestartet und konfiguriert haben. HINWEIS: Zum Anzeigen oder Festlegen der Voreinstellungen unter MacOS whlen Sie Photoshop> Voreinstellungen> Maeinheiten& Lineale. Unter Windows whlen Sie Bearbeiten> Voreinstellungen> Maeinheiten& Lineale. Anschlieend werden in den Skripten fr die nachstehenden Voreinstellungen die folgenden Werte festgelegt: Voreinstellung Lineale Maeinheiten Dialogfeldmodi Wert Funktion Zoll Pixel nie Verwendet Zoll als Maeinheit fr Grafiken. Verwendet Pixel als Maeinheit fr Text. Unterdrckt die Verwendung von Dialogfeldern, sodass das Skript ausgefhrt werden kann, ohne dass der Anwender an verschiedenen Stellen des Vorgangs Eingaben (z.B. Klicken auf die Schaltflche OK) vornehmen muss. HINWEIS: Die Option Dialogmodi ist in Photoshop nicht verfgbar. Anschlieend deklariert das Skript Variablen, in denen die Abmessungen des Dokuments in Zoll und die Auflsung des Dokuments in Pixel gespeichert werden. Das Skript deklariert dann eine Anzeigeauflsung und weist den Text Hello, World! einer Zeichenfolgenvariablen zu. Anschlieend wird mithilfe einer if-Anweisung berprft, ob ein Document-Objekt erstellt wurde. Es wird ein neues Document-Objekt erstellt, sofern noch keines vorhanden ist. Zum Schluss stellt das Skript die ursprnglichen Voreinstellungen wieder her. AS So arbeiten Sie mit Voreinstellungen fr Dokumente: 1. Erstellen Sie das folgende Skript und fhren Sie es aus. Weitere Informationen finden Sie unter Erstellen und Ausfhren eines AppleScripts auf Seite 18.
tell application "Adobe Photoshop CS5" --make Photoshop CS5 the active (front-most) application activate --create variables for the default settings set theStartRulerUnits to ruler units of settings set theStartTypeUnits to type units of settings set theStartDisplayDialogs to display dialogs --change the settings set ruler units of settings to inch units set type units of settings to pixel units set display dialogs to never --create variables for default document settings set theDocWidthInInches to 4 set theDocHeightInInches to 2 set theDocResolution to 72 set theDocString to "Hello, World!"

KAPITEL 3: Skripting in Photoshop

Erweiterte Skripterstellung 62

--check to see whether any documents are open --if none are found, create a document --use the default document settings as its properties if (count of documents) is 0 then make new document with properties {width:theDocWidthInInches, height:theDocHeightInInches, resolution:theDocResolution, name:theDocString} end if --change the settings back to the original units stored in the variables set ruler units of settings to theStartRulerUnits set type units of settings to theStartTypeUnits set display dialogs to theStartDisplayDialogs end tell

2.

Whlen Sie in Photoshop Photoshop> Voreinstellungen> Maeinheiten & Lineale, um sicherzustellen, dass die Voreinstellungen auf die ursprnglichen Einstellungen zurckgesetzt wurden.

3. Wenn Sie das Dokument in Photoshop berprft haben, schlieen Sie es, ohne es zu speichern. 4. Speichern Sie das Skript unter dem Namen HelloWorldDoc. VBS So arbeiten Sie mit Voreinstellungen fr Dokumente: 1. Erstellen Sie das folgende Skript. Weitere Informationen finden Sie unter Erstellen und Ausfhren eines VBScripts auf Seite 19.
'create variables for default preferences, new preferences Dim startRulerUnits Dim startTypeUnits Dim docWidthInInches Dim docHeightInInches Dim resolution Dim helloWorldStr Dim appRef Set appRef = CreateObject("Photoshop.Application") 'assign default preferences to save values in variables startRulerUnits = appRef.Preferences.RulerUnits startTypeUnits = appRef.Preferences.TypeUnits startDisplayDialogs = appRef.DisplayDialogs 'set new preferences and document defaults appRef.Preferences.RulerUnits = 2 'for PsUnits --> 2 (psInches) appRef.Preferences.TypeUnits = 1 'for PsTypeUnits --> 1 (psPixels) appRef.DisplayDialogs = 3 'for PsDialogModes --> 3 (psDisplayNoDialogs) docWidthInInches = 4 docHeightInInches = 2 resolution = 72 helloWorldStr = "Hello, World!" 'see if any documents are open 'if none, create one using document defaults If appRef.Documents.Count = 0 Then appRef.Documents.Add docWidthInInches, docHeightInInches, resolution, helloWorldStr End If

KAPITEL 3: Skripting in Photoshop

Erweiterte Skripterstellung 63

'restore beginning preferences appRef.Preferences.RulerUnits = startRulerUnits appRef.Preferences.TypeUnits = startTypeUnits appRef.DisplayDialogs = startDisplayDialogs Double click the file name in Windows Explorer to run the script.

2.

Whlen Sie in Photoshop Bearbeiten> Voreinstellungen> Maeinheiten & Lineale, um sicherzustellen, dass die Voreinstellungen auf die ursprnglichen Einstellungen zurckgesetzt wurden.

3. Wenn Sie das Dokument in Photoshop berprft haben, schlieen Sie es, ohne es zu speichern. 4. Speichern Sie das Skript unter dem Namen HelloWorldDoc. JS So arbeiten Sie mit Voreinstellungen fr Dokumente: 1. Erstellen Sie das folgende Skript. HINWEIS: Weitere Informationen zum Erstellen eines JavaScript finden Sie unter Erstellen und Ausfhren eines JavaScripts auf Seite 19.
//create and assign variables for default preferences startRulerUnits = app.preferences.rulerUnits startTypeUnits = app.preferences.typeUnits startDisplayDialogs = app.displayDialogs //change settings app.preferences.rulerUnits = Units.INCHES app.preferences.typeUnits = TypeUnits.PIXELS app.displayDialogs = DialogModes.NO //create and assign variables for document settings docWidthInInches = 4 docHeightInInches = 2 resolution = 72 docName = Hello World //use the length property of the documents object to //find out if any documents are open //if none are found, add a document if (app.documents.length == 0) app.documents.add(docWidthInInches, docHeightInInches, resolution, docName) //restore beginning preferences app.preferences.rulerunits = startRulerUnits app.preferences.typeunits = startTypeUnits app.displayDialogs = startDisplayDialogs

2. Speichern Sie das Skript unter dem Namen HelloWorldDoc.jsx im Ordner Vorgaben/Skripten. 3. ffnen Sie Photoshop und whlen Sie Datei> Skripten> HelloWorldDoc, um das Skript auszufhren. 4. Whlen Sie Bearbeiten> Voreinstellungen > Maeinheiten & Lineale, um sicherzustellen, dass die Voreinstellungen auf die ursprnglichen Einstellungen zurckgesetzt wurden. 5. Wenn Sie das Dokument in Photoshop berprft haben, schlieen Sie es, ohne es zu speichern. 6. Speichern Sie das Skript.

KAPITEL 3: Skripting in Photoshop

Erweiterte Skripterstellung 64

Anwenden von Farbe auf ein Textelement


In diesem Abschnitt fgen Sie dem Skript HelloWorldDoc eine Ebene hinzu und wandeln diese Ebene in ein Textobjekt um, das den Text Hello, World! in der Farbe Rot enthlt. Fhren Sie zunchst folgende Schritte aus:

Vergewissern Sie sich, dass Photoshop nicht ausgefhrt wird. ffnen Sie die Skriptdatei HelloWorldDoc in Ihrem Skripteditor.

AS

So erstellen Sie Details in einem Textelement und legen sie fest: 1. Geben Sie den folgenden Code in das Skript HelloWorldDoc ein, und zwar direkt vor den Anweisungen am Ende der Datei, die zur Wiederherstellung der ursprnglichen Voreinstellungen dienen.
--create a variable named theDocRef --assign the current (active) document to it set theDocRef to the current document --create a variable that contains a color object of the RGB color class --whose color is red set theTextColor to {class:RGB color, red:255, green:0, blue:0} --create a variable for the text layer, create the layer as an art layer object --and use the kind property of the art layer object to make it a text layer set theTextLayer to make new art layer in theDocRef with properties {kind:text layer} --Set the contents, size, position and color of the text layer set contents of text object of theTextLayer to "Hello, World!" set size of text object of theTextLayer to 36 set position of text object of theTextLayer to {0.75 as inches, 1 as inches} set stroke color of text object of theTextLayer to theTextColor

2. Fhren Sie das komplette Skript aus. Ihre Befehle werden nacheinander in Photoshop ausgefhrt. Dies kann einige Zeit in Anspruch nehmen. 3. Wenn Sie das Dokument in Photoshop berprft haben, schlieen Sie es, ohne es zu speichern. HINWEIS: Schlagen Sie die folgenden Klassen im Handbuch Adobe PhotoshopCS5 AppleScript Scripting Reference oder im Photoshop-AppleScript-Wrterbuch nach, um sicherzugehen, dass Sie verstehen, wie die Klassen in diesem Skript verwendet werden:
RGB color -Klasse art layer -Klasse

KAPITEL 3: Skripting in Photoshop

Erweiterte Skripterstellung 65

VBS

So erstellen Sie Details in einem Textelement und legen sie fest: 1. Geben Sie den folgenden Code in das Skript HelloWorldDoc ein, und zwar direkt vor den Anweisungen am Ende der Datei, die zur Wiederherstellung der ursprnglichen Voreinstellungen dienen.
'create a reference to the active (current) document Set docRef = appRef.ActiveDocument ' create a variable named textColor 'create a SolidColor object whose color is red 'assign the object to textColor Set textColor = CreateObject ("Photoshop.SolidColor") textColor.RGB.Red = 255 textColor.RGB.Green = 0 textColor.RGB.Blue = 0 'create an art layer object using the 'Add method of the ArtLayers class 'assign the layer to the variable newTextLayer Set newTextLayer = docRef.ArtLayers.Add() 'use the Kind property of the Art Layers class to 'make the layer a text layer newTextLayer.Kind = 2 newTextLayer.TextItem.Contents = helloWorldStr newTextLayer.TextItem.Position = Array(0.75, 1) newTextLayer.TextItem.Size = 36 newTextLayer.TextItem.Color = textColor

2. Fhren Sie das komplette Skript aus. Ihre Befehle werden nacheinander in Photoshop ausgefhrt. Dies kann einige Zeit in Anspruch nehmen. 3. Wenn Sie das Dokument in Photoshop berprft haben, schlieen Sie es, ohne es zu speichern. HINWEIS: Schlagen Sie die folgenden Klassen im Handbuch Adobe PhotoshopCS5 Visual Basic Scripting Reference oder im Visual Basic-Objektkatalog nach, um sicherzugehen, dass Sie verstehen, wie die Klassen in diesem Skript verwendet werden:
SolidColor ArtLayer

KAPITEL 3: Skripting in Photoshop

Erweiterte Skripterstellung 66

JS

So erstellen Sie Details in einem Textelement und legen sie fest: 1. Geben Sie den folgenden Code in das Skript HelloWorldDoc ein, und zwar direkt vor den Anweisungen am Ende der Datei, die zur Wiederherstellung der ursprnglichen Voreinstellungen dienen.
//create a reference to the active document docRef = app.activeDocument //create a variable named textColor //create a SolidColor object whose color is red //assign the object to textColor textColor = new solidColor textColor.rgb.red = 255 textColor.rgb.green = 0 textColor.rgb.blue = 0 helloWorldText = "Hello, World!" //create a variable named newTextLayer //use the add() method of the artLayers class to create a layer object //assign the object to newTextLayer newTextLayer = docRef.artLayers.add() //use the kind property of the artLayer class to make the layer a text layer newTextLayer.kind = LayerKind.TEXT newTextLayer.textItem.contents = helloWorldText newTextLayer.textItem.position = Array(0.75, 1) newTextLayer.textItem.size = 36 newTextLayer.textItem.color = textColor

2. Speichern Sie das Skript, ffnen Sie Photoshop und whlen Sie das Skript unter Datei> Skripten> HelloWorldDoc aus. Ihre Befehle werden nacheinander in Photoshop ausgefhrt. Dies kann einige Zeit in Anspruch nehmen. 3. Wenn Sie das Dokument in Photoshop berprft haben, schlieen Sie Photoshop, ohne das Dokument zu speichern. HINWEIS: Schlagen Sie die folgenden Klassen im Handbuch Adobe PhotoshopCS5 JavaScript Scripting Reference oder im ExtendScript Object Model Viewer nach, um sicherzugehen, dass Sie verstehen, wie die Klassen in diesem Skript verwendet werden:
SolidColor ArtLayer. Beachten Sie, dass der Wert LayerKind.TEXT der Eigenschaft kind die Konstante LayerKind verwendet. In Photoshop werden Konstanten in JavaScripts immer in Grobuchstaben dargestellt.

Anwenden eines Schwingungen-Filters


In diesem Abschnitt soll ein Schwingungen-Filter auf das Wort Hello in unserem Dokument angewendet werden. Hierfr sind die folgenden Schritte erforderlich:

Einstellen der Dokumentenbreite und -hhe auf Pixel und anschlieendes Rastern des Textobjekts in der Textebene. HINWEIS: Da es sich bei Text um eine Vektorgrafik handelt und Schwingungen-Filter nicht auf Vektorgrafiken angewendet werden knnen, mssen wir das Bild zunchst in ein Bitmap konvertieren. Beim Rastern werden mathematisch definierte Vektorgrafiken in Pixel konvertiert. Weitere Informationen zum Rastern finden Sie in der Hilfe zu Photoshop.

Whlen Sie den Bereich der Ebene aus, auf den wir den Schwingungen-Filter anwenden mchten.

KAPITEL 3: Skripting in Photoshop

Erweiterte Skripterstellung 67

HINWEIS: Unter Definieren des Bereichs eines Auswahlobjekts auf Seite 67 finden Sie Informationen zum Code im Skript, das fr diese Aufgabe erforderlich ist.

Wenden Sie einen Schwingungen-Filter auf die Auswahl an. HINWEIS: Bei der Schwingung handelt es sich um eine beschnittene Sinuskurve.

Definieren des Bereichs eines Auswahlobjekts


Zum Definieren des Bereichs eines Auswahlobjekts erstellen wir ein Array aus Koordinaten oder Punkten, das im Dokument in Pixel festgelegt wird. Das Array gibt die Koordinaten an, die die ueren Ecken eines rechteckigen Bereichs bestimmen, das in der linken oberen Ecke des Dokuments beginnt und sich ber das halbe Dokument erstreckt. HINWEIS: Sie knnen eine beliebige Zahl von Punkten fr einen ausgewhlten Bereich definieren. Die Anzahl der Koordinaten bestimmt die Form der Auswahl. Die letzte definierte Koordinate muss mit der ersten Koordinate identisch sein, damit der Bereich ein geschlossener Auswahlpfad ist. HINWEIS: Weitere Informationen zu Auswahlobjekten und anderen Objekten in Photoshop finden Sie unter Photoshop-Objektmodell auf Seite 11. Die Reihenfolge der Array-Werte lautet:

Linke obere Ecke der Auswahl: 0,0


0 bezeichnet die Spalte ganz links im Dokument. 0 bezeichnet die oberste Zeile im Dokument.

Rechte obere Ecke der Auswahl: theDocWidthInPixels / 2, 0


theDocWidthInPixels / 2 bezeichnet die Spalte in der Mitte des Dokuments, also die Spalte,

deren Koordinate der Gesamtzahl der Dokumentspalten geteilt durch 2 entspricht. HINWEIS: Der Wert fr theDocWidthInPixels ist die Gesamtzahl der Pixel, die die horizontale Dimension des Dokuments bestimmt. Spalten werden horizontal angeordnet.
0 bezeichnet die oberste Zeile im Dokument.

Rechte untere Ecke: theDocWidthInPixels / 2, theDocHeightInPixels


theDocWidthInPixels / 2 bezeichnet die Mitte des Dokuments. theDocHeightInPixels bezeichnet die unterste Zeile im Dokument, also die Zeile, deren

Koordinate der Gesamtzahl der Dokumentzeilen entspricht. HINWEIS: Der Wert fr theDocHeightInPixels ist die Gesamtzahl der Pixel, die die vertikale Dimension des Dokuments bestimmen. Zeilen werden vertikal angeordnet.

Linke untere Ecke: 0, theDocHeightInPixels


0 bezeichnet die Spalte ganz links im Dokument. theDocHeightInPixels bezeichnet die unterste Zeile im Dokument.

Linke obere Ecke der Auswahl: 0,0

Hiermit wird der Auswahlpfad an seinem Anfangspunkt geschlossen.

KAPITEL 3: Skripting in Photoshop

Erweiterte Skripterstellung 68

AS

So whlen Sie einen Bereich aus und wenden einen Schwingungen-Filter darauf an: 1. Geben Sie den folgenden Code in die Skriptdatei HelloWorldDoc ein, und zwar direkt vor den Anweisungen, die zur Wiederherstellung der ursprnglichen Voreinstellungen dienen:
--create new variables to contain the document objects width and height --determine width and height values by multiplying the --width and height in inches by the resolution --(which equals the number of pixels per inch) set theDocWidthInPixels to theDocWidthInInches * theDocResolution set theDocHeightInPixels to theDocHeightInInches * theDocResolution --use the rasterize command of the art layer object rasterize theTextLayer affecting text contents --create a variable named theSelRegion --assign an array of coordinates as its value set theSelRegion to {{0, 0}, {theDocWidthInPixels / 2, 0}, {theDocWidthInPixels / 2, theDocHeightInPixels}, {0, theDocHeightInPixels}, {0, 0}} --replace the document object with the selection object --so that the wave is applied only to the selected text select theDocRef region theSelRegion combination type replaced --apply the wave filter using the filter command of the --wave filter class (inherited from the filter options super class) filter current layer of theDocRef using wave filter with options {class:wave filter, number of generators:1, minimum wavelength:1, maximum wavelength:100, minimum amplitude:5, maximum amplitude:10, horizontal scale:100, vertical scale:100, wave type:sine, undefined areas:repeat edge pixels, random seed:0}

2. Whlen Sie Ausfhren, um das Skript auszufhren. 3. Wenn Sie das Dokument in Photoshop berprft haben, schlieen Sie es, ohne es zu speichern. 4. Speichern Sie das Skript im Skripteditor. HINWEIS: Schlagen Sie die folgenden Klassen im Handbuch Adobe PhotoshopCS5 AppleScript Scripting Reference oder im Photoshop-AppleScript-Wrterbuch nach, um sicherzugehen, dass Sie verstehen, wie die Klassen in diesem Skript verwendet werden:
wave filter-Klasse art layer-Klasse: Befehl rasterize, Befehl filter document-Klasse: Befehl select, Parameter combination type

KAPITEL 3: Skripting in Photoshop

Erweiterte Skripterstellung 69

VBS

So whlen Sie einen Bereich aus und wenden einen Schwingungen-Filter darauf an: 1. Geben Sie den folgenden Code am Ende der Skriptdatei HelloWorldDoc ein, und zwar direkt vor den Anweisungen, die zur Wiederherstellung der ursprnglichen Voreinstellungen dienen:
'create new variables to contain doc width and height 'convert inches to pixels by multiplying the number of inches by 'the resolution (which equals number of pixels per inch) docWidthInPixels = docWidthInInches * resolution docHeightInPixels = docHeightInInches * resolution 'use the Rasterize() method of the ArtLayer class to 'convert the text in the ArtLayer object (contained in the newTextLayer variable) 'to postscript text type newTextLayer.Rasterize (1) 'create an array to define the selection property 'of the Document object 'define the selected area as an array of points in the document docRef.Selection.Select Array(Array(0, 0), _ Array(docWidthInPixels / 2, 0), _ Array(docWidthInPixels / 2, docHeightInPixels), _ Array(0, docHeightInPixels), Array(0, 0)) 'use the ApplyWave() method of the ArtLayer class 'to apply the wave of the selected text newTextLayer.ApplyWave 1, 1, 100, 5, 10, 100, 100, 1, 1, 0

2. Doppelklicken Sie im Windows-Explorer auf den Dateinamen, um das Skript auszufhren. 3. Wenn Sie das Dokument in Photoshop berprft haben, schlieen Sie es, ohne es zu speichern. 4. Speichern Sie das Skript. HINWEIS: Schlagen Sie die folgenden Klassen im Handbuch Adobe PhotoshopCS5 Visual Basic Scripting Reference oder im Visual Basic-Objektkatalog nach, um sicherzugehen, dass Sie verstehen, wie die Klassen in diesem Skript verwendet werden:
ArtLayer-Klasse: ApplyWave-Methode, Rasterize -Methode Selection-Klasse: Select-Methode

KAPITEL 3: Skripting in Photoshop

Erweiterte Skripterstellung 70

JS

So whlen Sie einen Bereich aus und wenden einen Schwingungen-Filter darauf an: 1. Geben Sie den folgenden Code in die Skriptdatei HelloWorldDoc ein, und zwar direkt vor den Anweisungen, die zur Wiederherstellung der ursprnglichen Voreinstellungen dienen:
//create new variables to contain doc width and height //convert inches to pixels by multiplying the number of inches by //the resolution (which equals number of pixels per inch) docWidthInPixels = docWidthInInches * resolution docHeightInPixels = docHeightInInches * resolution //use the rasterize method of the artLayer class newTextLayer.rasterize(RasterizeType.TEXTCONTENTS) //create a variable to contain the coordinate values //for the selection object selRegion = Array(Array(0, 0), Array(docWidthInPixels / 2, 0), Array(docWidthInPixels / 2, docHeightInPixels), Array(0, docHeightInPixels), Array(0, 0)) //use the select method of the selection object //to create an object and give it the selRegion values //as coordinates docRef.selection.select(selRegion) newTextLayer.applyWave(1, 1, 100, 5, 10, 100, 100, WaveType.SINE, UndefinedAreas.WRAPAROUND, 0)

2. Speichern Sie das Skript, ffnen Sie Photoshop und whlen Sie das Skript unter Datei> Skripten> HelloWorldDoc aus. 3. Wenn Sie das Dokument in Photoshop berprft haben, schlieen Sie Photoshop, ohne das Dokument zu speichern. HINWEIS: Schlagen Sie die folgenden Klassen im Handbuch Adobe PhotoshopCS5 JavaScript Scripting Reference oder im ExtendScript Object Model Viewer nach, um sicherzugehen, dass Sie verstehen, wie die Klassen in diesem Skript verwendet werden:
ArtLayer rasterize()-Methode. Beachten Sie, dass das Argument RasterizeType.TEXTCONTENTS die Konstante RasterizeType verwendet. In Photoshop werden Konstanten in JavaScripts immer in

Grobuchstaben dargestellt.

Methode applyWave()

KAPITEL 3: Skripting in Photoshop

Erweiterte Skripterstellung 71

Anwenden eines Bewegungsunschrfe-Filters


In diesem Abschnitt wenden wir einen anderen Filter auf die andere Hlfte unseres Dokuments an. AS So wenden Sie einen Bewegungsunschrfe-Filter auf HelloWorldDoc an: 1. Geben Sie den folgenden Code in die Skriptdatei HelloWorldDoc ein, und zwar direkt vor den Anweisungen, die zur Wiederherstellung der ursprnglichen Voreinstellungen dienen.
--change the value of the variable theSelRegion --to contain the opposite half of the screen set theSelRegion to {{theDocWidthInPixels / 2, 0}, {theDocWidthInPixels, 0}, {theDocWidthInPixels, theDocHeightInPixels}, {theDocWidthInPixels / 2, theDocHeightInPixels}, {theDocWidthInPixels / 2, 0}} select theDocRef region theSelRegion combination type replaced filter current layer of theDocRef using motion blur with options {class:motion blur, angle:45, radius:5} deselect theDocRef

2. Whlen Sie Ausfhren, um das Skript auszufhren. HINWEIS: Schlagen Sie die motion blur-Klasse im Handbuch Adobe PhotoshopCS5 AppleScript Scripting Reference oder im Photoshop-AppleScript-Wrterbuch nach, um sicherzugehen, dass Sie verstehen, wie die Klasse in diesem Skript verwendet wird: VBS So wenden Sie einen Bewegungsunschrfe-Filter auf HelloWorldDoc an: 1. Geben Sie den folgenden Code in die Skriptdatei HelloWorldDoc ein, und zwar direkt vor den Anweisungen, die zur Wiederherstellung der ursprnglichen Voreinstellungen dienen.
docRef.Selection.Select Array(Array(docWidthInPixels / 2, 0), _ Array(docWidthInPixels, 0), _ Array(docWidthInPixels, docHeightInPixels), _ Array(docWidthInPixels / 2, docHeightInPixels), _ Array(docWidthInPixels / 2, 0)) newTextLayer.ApplyMotionBlur 45, 5 docRef.Selection.Deselect

2. Doppelklicken Sie im Windows-Explorer auf die Datei, um das Skript auszufhren. HINWEIS: Schlagen Sie die ApplyMotionBlur-Methode der ArtLayer-Klasse im Handbuch Adobe PhotoshopCS5 Visual Basic Scripting Reference oder im Visual Basic-Objektkatalog nach, um sicherzugehen, dass Sie verstehen, wie die Klasse in diesem Skript verwendet wird:

KAPITEL 3: Skripting in Photoshop

Erweiterte Skripterstellung 72

JS

So wenden Sie einen Bewegungsunschrfe-Filter auf HelloWorldDoc an: 1. Geben Sie den folgenden Code in die Skriptdatei HelloWorldDoc ein, und zwar direkt vor den Anweisungen, die zur Wiederherstellung der ursprnglichen Voreinstellungen dienen.
//change the value of selRegion to the other half of the document selRegion = Array(Array(docWidthInPixels / 2, 0), Array(docWidthInPixels, 0), Array(docWidthInPixels, docHeightInPixels), Array(docWidthInPixels / 2, docHeightInPixels), Array(docWidthInPixels / 2, 0)) docRef.selection.select(selRegion) newTextLayer.applyMotionBlur(45, 5) docRef.selection.deselect()

2. Speichern Sie das Skript, ffnen Sie Photoshop und whlen Sie das Skript unter Datei> Skripten> HelloWorldDoc aus. HINWEIS: Schlagen Sie die applyMotionBlur()-Methode der ArtLayer-Klasse im Handbuch Adobe PhotoshopCS5 JavaScript Scripting Reference oder im ExtendScript Object Model Viewer nach, um sicherzugehen, dass Sie verstehen, wie die Methode in diesem Skript verwendet wird:

Action Manager
Mit Photoshop-Aktionen knnen Sie wiederkehrende Aufgaben automatisieren und dadurch Zeit sparen. Das Erstellen und Ausfhren von Aktionen erfolgt in der Benutzeroberflche der Anwendung ber die Aktionen-Palette. Sie knnen Aktionen auerdem unter Verwendung des Dienstprogramms Action Manager in Skripten verwalten. Mit dem Action Manager lassen sich Skripten fr Photoshop-Funktionen schreiben, die in der Skripting-Oberflche sonst nicht zugnglich sind, beispielsweise Zusatzmodule und Filter von Drittanbietern. Einzige Voraussetzung fr den Einsatz des Action Managers: Die Aufgabe, auf die Sie mit dem Action Manager zugreifen mchten, muss aufgezeichnet werden knnen. In diesem Kapitel wird beschrieben, wie Sie den Action Manager und die Objekte der darin enthaltenen Skripting-Oberflche einsetzen.

ScriptListener-Zusatzmodul
Bevor Sie den Action Manager verwenden knnen, mssen Sie das Zusatzmodul ScriptListener installieren. ScriptListener zeichnet eine Datei mit Skriptcode auf, der den von Ihnen in der Benutzeroberflche ausgefhrten Aktionen entspricht. TIPP: Da die meisten Aktionen von ScriptListener aufgezeichnet werden, sollten Sie ScriptListener nur installieren, wenn Sie Action Manager-Skripten erstellen mchten. Wenn Sie ScriptListener dauerhaft installiert lassen, entstehen groe Dateien, die Speicherplatz auf der Festplatte belegen. Auerdem kann die Ausfhrung von Photoshop dadurch verlangsamt werden. Wenn Sie in Photoshop eine Aufgabe oder Aufgabenserie ausfhren, erstellt ScriptListener mehrere Dateien, die Code fr die Aktionen in Photoshop enthalten:
ScriptingListenerJS.log mit JavaScript-Code ScriptingListenerVB.log mit VBScript-Code (nur Windows)

ScriptListener legt diese Dateien auf dem Desktop bzw. Schreibtisch an. HINWEIS: Es gibt keine AppleScript-Schnittstelle fr den Action Manager. Sie knnen jedoch ber ein AppleScript auf den Action Manager zugreifen, indem Sie ein JavaScript aus AppleScript heraus ausfhren. Siehe Ausfhren von Action Manager-Code auf JavaScript-Basis aus AppleScript auf Seite 80.

Installieren von ScriptListener


Das ScriptListener-Zusatzmodul befindet sich im Ordner ..\AdobePhotoshopCS5\Scripting\Hilfsprogramme. So installieren Sie ScriptListener: 1. Whlen Sie die Datei ScriptListener.8li aus und klicken Sie dann auf Bearbeiten> Kopieren. 2. Fgen Sie die kopierte Datei am folgenden Speicherort ein:
..\Adobe Photoshop CS5\Plug-Ins\Automate

3. ffnen Sie Photoshop. HINWEIS: Wenn Photoshop bereits geffnet ist, schlieen Sie das Programm und starten Sie es neu. Sie sorgen so dafr, dass das Zusatzmodul in Photoshop geladen werden kann.

73

KAPITEL 4: Action Manager

Action Manager-Skriptobjekte

74

So deinstallieren Sie ScriptListener: 1. Schlieen Sie Photoshop. 2. Vergewissern Sie sich, dass sich im Ordner ..\AdobePhotoshopCS5\Scripting\Hilfsprogramme noch immer eine Kopie der Datei ScriptListener.8li befindet. 3. Lschen Sie die Datei ScriptListener.8li aus dem folgenden Verzeichnis:
..\Adobe Photoshop CS\Plug-Ins\Automate

4. Lschen Sie die Protokolldateien ScriptingListenerJS.log und ScriptingListenerVB.log vom Desktop bzw. Schreibtisch. HINWEIS: Unter Windows werden eventuell auch nach dem Entfernen von ScriptListener aus dem Ordner Automatisieren Aktionen damit aufgezeichnet. Wenn Sie verhindern mchten, dass die Datei ScriptingListenerJS.log zu gro wird, lschen Sie sie nach jedem Anwenden einer Photoshop-Aktion.

Action Manager-Skriptobjekte
Die Objekte Action Descriptor, Action List und Action Reference gehren zum Funktionsumfang des Action Managers. Ausfhrliche Informationen zu diesen Objekten finden Sie im zugehrigen Referenzhandbuch. Alternativ knnen Sie Informationen aus dem Objektkatalog fr die verwendete Sprache beziehen. HINWEIS: Diese Objekte stehen in AppleScript nicht zur Verfgung.

Aufzeichnen eines Skripts mit ScriptListener


In diesem Abschnitt wird gezeigt, wie Sie mit ScriptListener eine Skriptprotokolldatei erstellen knnen. Aufgezeichnet werden die Aktionen, die zum Anwenden des Relief-Filters auf ein Dokument notwendig sind. (Der Relief-Filter steht standardmig nur ber die Photoshop-Schnittstelle zur Verfgung.) HINWEIS: ScriptListener muss im Ordner Automatisieren installiert sein, bevor mit dem folgenden Verfahren begonnen wird. Siehe Installieren von ScriptListener auf Seite 73. So machen Sie den Relief-Filter skriptfhig: 1. ffnen Sie Photoshop und anschlieend ein Dokument. 2. Whlen Sie Fenster> Aktionen und whlen Sie dann im Men der Aktionen-Palette den Befehl Neue Aktion. 3. Geben Sie der Aktion einen Namen und klicken Sie dann auf Aufzeichnen. 4. Whlen Sie Filter> Stilisierungsfilter> Relief. 5. Verwenden Sie die folgenden Einstellungen:

Winkel: 135 Hhe: 3 Strke: 100

6. Klicken Sie auf OK.

KAPITEL 4: Action Manager

Verwenden des Action Manager aus JavaScript

75

7. Suchen Sie die Skript-Protokolldateien:


Unter Windows befinden sich die Protokolldateien auf dem Desktop. Unter MacOS befinden sich die Protokolldateien auf dem Schreibtisch.

Verwenden des Action Manager aus JavaScript


In diesem Abschnitt wird gezeigt, wie Sie Ihr Skript mit dem Inhalt des Protokolls ScriptingListenerJS.log erstellen. Um das Verfahren aus diesem Abschnitt ausfhren zu knnen, mssen Sie bereits eine Aktion aufgezeichnet haben. Bei dem Beispiel in diesem Abschnitt wird davon ausgegangen, dass Sie die Anweisungen unter Aufzeichnen eines Skripts mit ScriptListener auf Seite 74 befolgt haben. Bei den in diesem Abschnitt beschriebenen Verfahren wird der Relief-Filter ber den Action Manager fr die Skripting-Oberflche verfgbar gemacht. So erstellen Sie ein JavaScript aus der ScriptListener-Ausgabe: 1. Fhren Sie einen der folgenden Schritte aus:

ffnen Sie ScriptingListenerJS.log auf dem Desktop bzw. Schreibtisch.

Der Code am Ende der Datei wird hnlich aussehen wie der folgende Code (mglicherweise mit anderen Zahlen):
var id19 = charIDToTypeID( "Embs" ); var desc4 = new ActionDescriptor(); var id20 = charIDToTypeID( "Angl" ); desc4.putInteger( id20, 135 ); var id21 = charIDToTypeID( "Hght" ); desc4.putInteger( id21, 3 ); var id22 = charIDToTypeID( "Amnt" ); desc4.putInteger( id22, 100 ); executeAction( id19, desc4 ,DialogModes.NO);

HINWEIS: ScriptListener trennt protokollierte Befehle durch horizontale Linien aus Gleichheitszeichen (=====...). Wenn die aktuelle Aktion nicht die erste Aktion ist, die im Protokoll aufgezeichnet wurde, knnen Sie die zuletzt aufgezeichnete Aktion schnell finden, da sie auf die letzte Linie aus Gleichheitszeichen folgt. 2. Kopieren Sie den zur Relief-Aktion gehrenden JavaScript-Code aus der Datei ScriptListenerJS.log in eine andere Datei, die den Namen emboss.jsx trgt. 3. Suchen Sie im Skript emboss.jsx die Werte, die Sie fr den Filter verwendet haben (135, 3 und 100). Ersetzen Sie die Werte der Filterspezifikation durch Variablennamen. Im folgenden Beispiel wurde 135 durch angle (Winkel) ersetzt, 3 durch height (Hhe) und 100 durch amount (Strke).
var id19 = charIDToTypeID( "Embs" ); var desc4 = new ActionDescriptor(); var id20 = charIDToTypeID( "Angl" ); desc4.putInteger( id20, angle ); var id21 = charIDToTypeID( "Hght" ); desc4.putInteger( id21, height ); var id22 = charIDToTypeID( "Amnt" ); desc7.putInteger( id22, amount ); executeAction( id19, desc4,DialogModes.NO );

KAPITEL 4: Action Manager

Verwenden des Action Manager aus einem VBS-Skript

76

4. Binden Sie den Code in eine JavaScript-Funktion ein. Im folgenden Beispiel ist emboss der Name der Funktion.
function emboss( angle, height, amount ) { var id19 = charIDToTypeID( "Embs" ); var desc4 = new ActionDescriptor(); var id20 = charIDToTypeID( "Angl" ); desc4.putInteger( id20, angle ); var id21 = charIDToTypeID( "Hght" ); desc4.putInteger( id21, height ); var id22 = charIDToTypeID( "Amnt" ); desc7.putInteger( id22, amount ); executeAction( id19, desc4 ,DialogModes.NO); }

5. Um den Relief-Filter mit einem JavaScript auf ein Dokument anzuwenden, beziehen Sie die emboss-Funktion in das JavaScript ein und rufen Sie die Funktion mit den gewnschten Parametern auf. Im folgenden Beispiel wird der Relief-Filter mit dem Winkel75, der Hhe2 und der Strke89 angewendet. (Informationen ber das Schreiben des Codes zum ffnen eines Dokuments innerhalb des Skripts finden Sie unter ffnen eines Dokuments auf Seite 28.)
// Open the document in the script var fileRef = new File("/c/myfile") var docRef = app.open(fileRef) //Call emboss with desired parameters emboss( 75, 2, 89 ); //finish the script //include the function in the script file function emboss(angle, height, amount ) { var id32 = charIDToTypeID( "Embs" ); var desc7 = new ActionDescriptor(); var id33 = charIDToTypeID( "Angl" ); desc7.putInteger( id33, angle ); var id34 = charIDToTypeID( "Hght" ); desc7.putInteger( id34, height ); var id35 = charIDToTypeID( "Amnt" ); desc7.putInteger( id35, amount ); executeAction( id32, desc7,DialogModes.NO ); }

6. ffnen Sie Photoshop, um den Relief-Filter anzuwenden, indem Sie Datei> Skripten> Durchsuchen whlen und dann zum Speicherort Ihres Skripts emboss.jsx wechseln. Whlen Sie ffnen, um das Skript auszufhren.

Verwenden des Action Manager aus einem VBS-Skript


In diesem Abschnitt wird gezeigt, wie Sie Ihr Skript mit dem Inhalt des Protokolls ScriptingListenerVB.log erstellen. Um das Verfahren aus diesem Abschnitt ausfhren zu knnen, mssen Sie bereits eine Aktion aufgezeichnet haben. Bei dem Beispiel in diesem Abschnitt wird davon ausgegangen, dass Sie die Anweisungen unter Aufzeichnen eines Skripts mit ScriptListener auf Seite 74 befolgt haben. Bei den in diesem Abschnitt beschriebenen Verfahren wird der Relief-Filter ber den Action Manager fr die Skripting-Oberflche verfgbar gemacht.

KAPITEL 4: Action Manager

Verwenden des Action Manager aus einem VBS-Skript

77

So erstellen Sie ein VBScript aus der ScriptListener-Ausgabe: 1. ffnen Sie die Datei ScriptingListenerVB.log vom Desktop bzw. Schreibtisch aus. Der Code am Ende der Datei wird hnlich aussehen wie der folgende Code (mglicherweise mit anderen Zahlen):
DIM objApp SET objApp = CreateObject("Photoshop.Application") REM Use dialog mode 3 for show no dialogs DIM dialogMode dialogMode = 3 DIM id9 id9 = objApp.CharIDToTypeID( "Embs" ) DIM desc4 SET desc4 = CreateObject( "Photoshop.ActionDescriptor" ) DIM id10 id10 = objApp.CharIDToTypeID( "Angl" ) Call desc4.PutInteger( id10, 135 ) DIM id11 id11 = objApp.CharIDToTypeID( "Hght" ) Call desc4.PutInteger( id11, 3 ) DIM id12 id12 = objApp.CharIDToTypeID( "Amnt" ) Call desc4.PutInteger( id12, 100 ) Call objApp.ExecuteAction( id9, desc4, dialogMode )

HINWEIS: ScriptListener trennt protokollierte Befehle durch horizontale Linien aus Gleichheitszeichen (====...). Wenn die aktuelle Aktion nicht die erste Aktion ist, die im Protokoll aufgezeichnet wurde, knnen Sie die zuletzt aufgezeichnete Aktion schnell finden, da sie auf die letzte Linie aus Gleichheitszeichen folgt. 2. Kopieren Sie den zur Relief-Aktion gehrenden VBScript-Code aus der Datei ScriptListenerVB.log in eine andere Datei, die den Namen emboss.vbs trgt. 3. Suchen Sie im Skript emboss.vbs die Werte, die Sie fr den Filter verwendet haben (135, 3 und 100). Ersetzen Sie die Werte der Filterspezifikation durch Variablennamen. Im folgenden Beispiel wurde 135 durch angle (Winkel), 3 durch height (Hhe) und 100 durch amount (Strke) ersetzt.
DIM objApp SET objApp = CreateObject("Photoshop.Application") REM Use dialog mode 3 for show no dialogs DIM dialogMode dialogMode = 3 DIM id9 id9 = objApp.CharIDToTypeID( "Embs" ) DIM desc4 SET desc4 = CreateObject( "Photoshop.ActionDescriptor" ) DIM id10 id10 = objApp.CharIDToTypeID( "Angl" ) Call desc4.PutInteger( id10, angle) DIM id11 id11 = objApp.CharIDToTypeID( "Hght" ) Call desc4.PutInteger( id11, height ) DIM id12 id12 = objApp.CharIDToTypeID( "Amnt" ) Call desc4.PutInteger( id12, amount ) Call objApp.ExecuteAction( id9, desc4, dialogMode )

KAPITEL 4: Action Manager

Verwenden des Action Manager aus einem VBS-Skript

78

4. Binden Sie den Code in eine VBScript-Funktion ein. Im folgenden Beispiel ist Emboss der Name der Funktion. Die Erstellung des Photoshop-Application-Objekts muss auerhalb der Funktion erfolgen, wie in der Beschreibung zum nchsten Schritt noch erlutert wird.
DIM objApp SET objApp = CreateObject("Photoshop.Application") Function Emboss( angle, height, amount ) REM Use dialog mode 3 for show no dialogs DIM dialogMode dialogMode = 3 DIM id9 id9 = objApp.CharIDToTypeID( "Embs" ) DIM desc4 SET desc4 = CreateObject( "Photoshop.ActionDescriptor" ) DIM id10 id10 = objApp.CharIDToTypeID( "Angl" ) Call desc4.PutInteger( id10, angle ) DIM id11 id11 = objApp.CharIDToTypeID( "Hght" ) Call desc4.PutInteger( id11, height ) DIM id12 id12 = objApp.CharIDToTypeID( "Amnt" ) Call desc4.PutInteger( id12, amount ) Call objApp.ExecuteAction( id9, desc4, dialogMode ) End Function

5. Um den Relief-Filter mit einem VBScript auf ein Dokument anzuwenden, beziehen Sie die emboss-Funktion in das Skript ein und rufen Sie die Funktion mit den gewnschten Parametern auf. Im folgenden Beispiel wird der Relief-Filter mit dem Winkel75, der Hhe2 und der Strke89 angewendet. Bevor das Skript die Funktion aufruft, muss ein Dokument geffnet worden sein. (Informationen ber das Schreiben des Codes zum ffnen eines Dokuments innerhalb des Skripts finden Sie unter ffnen eines Dokuments auf Seite 28.) Da das Skript ein Dokument ffnet, ist beim Aufrufen der Methode Application .Open ein Zugriff auf das Photoshop-DOM erforderlich. Das Skript muss deshalb das Photoshop.Application object before it opens a new document.
DIM objApp SET objApp = CreateObject("Photoshop.Application") 'Open the document in the script filename = C:\MyFile DIM docRef SET docRef = objApp.Open(filename) 'Call emboss with desired parameters Call Emboss( 75, 2, 89 )

KAPITEL 4: Action Manager

Ausfhren von Action Manager-Code auf JavaScript-Basis aus VBScript

79

Function Emboss( angle, height, amount ) REM Use dialog mode 3 for show no dialogs DIM dialogMode dialogMode = 3 DIM id9 id9 = objApp.CharIDToTypeID( "Embs" ) DIM desc4 SET desc4 = CreateObject( "Photoshop.ActionDescriptor" ) DIM id10 id10 = objApp.CharIDToTypeID( "Angl" ) Call desc4.PutInteger( id10, angle ) DIM id11 id11 = objApp.CharIDToTypeID( "Hght" ) Call desc4.PutInteger( id11, height ) DIM id12 id12 = objApp.CharIDToTypeID( "Amnt" ) Call desc4.PutInteger( id12, amount ) Call objApp.ExecuteAction( id9, desc4, dialogMode ) End Function

6.

erstellen. Wenden Sie das Relief-Filterskript an, indem Sie auf die Datei emboss.vbs doppelklicken. Dadurch wird Photoshop gestartet, die Datei geffnet und der Relief-Filter auf die Datei angewendet.

Ausfhren von Action Manager-Code auf JavaScript-Basis aus VBScript


Mit der Methode DoJavaScriptFile knnen Sie aus einem VBScript heraus auf Action Manager-Code zugreifen, der auf JavaScript basiert. Verwenden Sie den VBscript-Objektkatalog, um weitere Informationen zur Methode Application.DoJavaScriptFile zu erhalten. So fhren Sie Action Manager-Code auf JavaScript-Basis aus einem VBScript aus: 1. Fhren Sie die Schritte 1 bis 4 aus, die im Abschnitt Verwenden des Action Manager aus JavaScript auf Seite 75 beschrieben werden. Damit entsteht eine Datei (emboss.jsx), die den folgenden JavaScript-Code enthlt:
function emboss( angle, height, amount ) { var id32 = charIDToTypeID( "Embs" ); var desc7 = new ActionDescriptor(); var id33 = charIDToTypeID( "Angl" ); desc7.putInteger( id33, angle ); var id34 = charIDToTypeID( "Hght" ); desc7.putInteger( id34, height ); var id35 = charIDToTypeID( "Amnt" ); desc7.putInteger( id35, amount ); executeAction( id32, desc7 ); }

2. Fgen Sie am Ende der Datei emboss.jsx die folgende JavaScript-Codezeile ein. Durch diesen Code wird die emboss-Funktion mit Argumenten ausgefhrt, die durch externen Aufruf bergeben wurden. Weitere Informationen zum bergeben von Argumenten aus einem VBScript in ein JavaScript finden Sie im Handbuch Introduction to Scripting.
// Call emboss with values provided in the "arguments" collection emboss( arguments[0], arguments[1], arguments[2] );

KAPITEL 4: Action Manager

Ausfhren von Action Manager-Code auf JavaScript-Basis aus AppleScript 80

3. Aus einem VBScript knnen Sie den Relief-Filter dann wie folgt aufrufen (bei diesem Beispiel wird angenommen, dass emboss.jsx sich im Verzeichnis C:\ befindet):
Set objApp = CreateObject("Photoshop.Application") 'Open the document in the script filename = C:\MyFile DIM docRef SET docRef = objApp.Open(filename) objApp.DoJavaScriptFile "C:\emboss.jsx", Array(75, 2, 89)

Ausfhren von Action Manager-Code auf JavaScript-Basis aus AppleScript


In AppleScript gibt es keine Action Manager-Funktion. Sie knnen JavaScript-Code und -Dateien aus AppleScript jedoch mit dem Befehl do javascript ausfhren. Weitere Informationen finden Sie im Handbuch Introduction to Scripting. 1. Fhren Sie die Schritte 1 bis 4 aus, die im Abschnitt Verwenden des Action Manager aus JavaScript auf Seite 75 beschrieben werden. Damit entsteht eine Datei (emboss.jsx), die den folgenden JavaScript-Code enthlt:
function emboss( angle, height, amount ) { var id32 = charIDToTypeID( "Embs" ); var desc7 = new ActionDescriptor(); var id33 = charIDToTypeID( "Angl" ); desc7.putInteger( id33, angle ); var id34 = charIDToTypeID( "Hght" ); desc7.putInteger( id34, height ); var id35 = charIDToTypeID( "Amnt" ); desc7.putInteger( id35, amount ); executeAction( id32, desc7 ); }

2. Fgen Sie am Ende der Datei emboss.jsx die folgende JavaScript-Codezeile ein. Durch diesen Code wird die emboss-Funktion mit Argumenten ausgefhrt, die durch externen Aufruf bergeben wurden. Weitere Informationen zum bergeben von Argumenten aus einem AppleScript in ein JavaScript finden Sie im Handbuch Introduction to Scripting.
// Call emboss with values provided in the "arguments" collection emboss( arguments[0], arguments[1], arguments[2] );

3. Mit dem folgenden Beispiel fr AppleScript-Code wird ein Dokument geffnet und der Relief-Filter darauf angewendet:
tell application "Adobe Photoshop CS5" set theFile to alias Application:Documents:MyFile open theFile do javascript (file <path to Emboss.jsx>) with arguments { 75,2,89 } end tell

KAPITEL 4: Action Manager

Suchen von Ereignis-IDs und Klassen-IDs ber ScriptListener

81

Suchen von Ereignis-IDs und Klassen-IDs ber ScriptListener


In diesem Abschnitt wird gezeigt, wie Sie mit ScriptListener Ereignis-IDs und Klassen-IDs fr Aktionen in Photoshop bestimmen. Diese Ereignis- und Klassen-IDs dienen zum Einrichten von Benachrichtigung mit der Notifier-Klasse. Mit ScriptListener knnen Sie die Ereignis-ID fr jede aufzeichenbare Aktion bestimmen. Installieren Sie einfach das ScriptListener-Zusatzmodul wie unter Installieren von ScriptListener auf Seite 73 beschrieben. Fhren Sie dann die Aktion aus, deren Ereignis-ID Sie finden mchten. Das Ereignis wird in der ScriptListener-Protokolldatei erfasst. (Siehe ScriptListener-Zusatzmodul auf Seite 73.) Wenn sich das Ereignis auf mehrere unterschiedliche Klassen von Objekten bezieht, wird in der Protokolldatei auch die Klassen-ID vermerkt. Die folgenden Beispiele demonstrieren das Ermitteln der Ereignis-ID fr das Ereignis Dokument ffnen sowie der Ereignis- und Klassen-ID fr das Ereignis Neu, das fr mehrere unterschiedliche Klassen gilt. Suchen der Ereignis-ID fr das Ereignis Dokument ffnen 1. Vergewissern Sie sich, dass das ScriptListener-Zusatzmodul installiert ist. 2. ffnen Sie Photoshop und anschlieend ein Dokument. 3. Suchen Sie die ScriptListener-Protokolldatei und ffnen Sie sie. Sie knnen entweder die VBScript-Protokolldatei oder die JavaScript-Protokolldatei verwenden. In der JavaScript-Version der Datei wird sich am Ende der Datei Code hnlich dem folgenden befinden (Bereich unterhalb der Linie aus Gleichheitszeichen als Protokoll der letzten Aktion):
// ======================================================= var id14 = charIDToTypeID( "Opn " ); var desc5 = new ActionDescriptor(); var id15 = charIDToTypeID( "null" ); desc5.putPath( id15, new File( "C:\\Program Files\\Adobe\\Adobe Photoshop CS5\\ Samples\\Fish.psd" ) ); executeAction( id14, desc5, DialogModes.NO );

4. Die Methode executeAction fhrt die Aktion von einem Skript aus; die Ereignis-ID muss dabei die auszufhrende Aktion identifizieren. Das erste Argument, in diesem Fall id14, liefert der Methode die Ereignis-ID. Sie sehen die Variable id14, die einige Zeilen davor definiert wurde. Sie zeigt, dass mit der Aktion Dokument ffnen die Ereignis-ID "Opn " verbunden ist. 5. Nun knnen Sie unter Verwendung dieser Ereignis-ID eine Ereignisbenachrichtigung bei Dokument ffnen durch Ihre Skripten einrichten. Beispiel fr JavaScript:
var eventFile = new File(app.path + "/Presets/Scripts/Event Scripts Only/Welcome.jsx") app.notifiers.add( "Opn ", eventFile)

Suchen der Ereignis-ID und Klassen-ID fr das Ereignis Neu 1. Vergewissern Sie sich, dass das ScriptListener-Zusatzmodul installiert ist. 2. ffnen Sie Photoshop und erstellen Sie mit dem Befehl Datei> Neu ein neues Dokument. 3. Erstellen Sie dann in der Kanle-Palette ber das Symbol Neuen Kanal erstellen einen neuen Kanal. 4. Suchen Sie die ScriptListener-Protokolldatei und ffnen Sie sie. Sie knnen entweder die VBScript-Protokolldatei oder die JavaScript-Protokolldatei verwenden. Es wurden zwei Aktionen aufgezeichnet, daher sind die beiden letzten durch Gleichheitszeichen getrennten Abschnitte der Datei relevant. Der Code in der JavaScript-Protokolldatei wird hnlich wie der folgende Code aussehen:

KAPITEL 4: Action Manager

Suchen von Ereignis-IDs und Klassen-IDs ber ScriptListener

82

// ======================================================= var id17 = charIDToTypeID( "Mk " ); var desc6 = new ActionDescriptor(); var id18 = charIDToTypeID( "Nw " ); var desc7 = new ActionDescriptor(); var id19 = charIDToTypeID( "Md " ); var id20 = charIDToTypeID( "RGBM" ); desc7.putClass( id19, id20 ); var id21 = charIDToTypeID( "Wdth" ); var id22 = charIDToTypeID( "#Rlt" ); desc7.putUnitDouble( id21, id22, 800.000000 ); var id23 = charIDToTypeID( "Hght" ); var id24 = charIDToTypeID( "#Rlt" ); desc7.putUnitDouble( id23, id24, 800.000000 ); var id25 = charIDToTypeID( "Rslt" ); var id26 = charIDToTypeID( "#Rsl" ); desc7.putUnitDouble( id25, id26, 72.000000 ); var id27 = stringIDToTypeID( "pixelScaleFactor" ); desc7.putDouble( id27, 1.000000 ); var id28 = charIDToTypeID( "Fl " ); var id29 = charIDToTypeID( "Fl " ); var id30 = charIDToTypeID( "Wht " ); desc7.putEnumerated( id28, id29, id30 ); var id31 = charIDToTypeID( "Dpth" ); desc7.putInteger( id31, 8 ); var id32 = stringIDToTypeID( "profile" ); desc7.putString( id32, "sRGB IEC61966-2.1" ); var id33 = charIDToTypeID( "Dcmn" ); desc6.putObject( id18, id33, desc7 ); executeAction( id17, desc6, DialogModes.NO ); // ======================================================= var id34 = charIDToTypeID( "Mk " ); var desc8 = new ActionDescriptor(); var id35 = charIDToTypeID( "Nw " ); var desc9 = new ActionDescriptor(); var id36 = charIDToTypeID( "ClrI" ); var id37 = charIDToTypeID( "MskI" ); var id38 = charIDToTypeID( "MskA" ); desc9.putEnumerated( id36, id37, id38 ); var id39 = charIDToTypeID( "Clr " ); var desc10 = new ActionDescriptor(); var id40 = charIDToTypeID( "Rd " ); desc10.putDouble( id40, 255.000000 ); var id41 = charIDToTypeID( "Grn " ); desc10.putDouble( id41, 0.000000 ); var id42 = charIDToTypeID( "Bl " ); desc10.putDouble( id42, 0.000000 ); var id43 = charIDToTypeID( "RGBC" ); desc9.putObject( id39, id43, desc10 ); var id44 = charIDToTypeID( "Opct" ); desc9.putInteger( id44, 50 ); var id45 = charIDToTypeID( "Chnl" ); desc8.putObject( id35, id45, desc9 ); executeAction( id34, desc8, DialogModes.NO );

5. Der erste Abschnitt enthlt den Skriptcode zum Ausfhren des Ereignisses Neues Dokument. Der zweite Abschnitt enthlt den Skriptcode fr das Ereignis Neuer Kanal.

KAPITEL 4: Action Manager

Suchen von Ereignis-IDs und Klassen-IDs ber ScriptListener

83

6. Die Methode executeAction nimmt fr beide Aktionen ein Argument entgegen, dessen Wert als "Mk " definiert ist. (Siehe id17 und id34.) Dies ist die Ereignis-ID fr die Aktion Neu. Fr diese Aktion muss auch die zu verwendende Klasse bekannt sein, die Klassen-ID fr das Ereignis. 7. Die Methode putObject identifiziert die Klasse, bei der die Aktion ausgefhrt wird. Das zweite Argument von putObject liefert die bentigte Klassen-ID. Bei der ersten Aktion ist id33 als "Dcmn" definiert, bei der zweiten Aktion ist id45 als "Chnl" definiert. Damit werden die Klassen-IDs fr Dokument bzw. Kanal bereitgestellt. 8. Nun knnen Sie mit diesen Ereignis- und Klassen-IDs eine Ereignisbenachrichtigung bei den Ereignissen Neues Dokument und Neuer Kanal durch Ihre Skripten einrichten. Beispiel fr JavaScript:
var eventFile = new File(app.path + "/Presets/Scripts/Event Scripts Only/Welcome.jsx") app.notifiers.add("Mk ", eventFile, "Dcmn") app.notifiers.add("Mk ", eventFile, "Chnl")

Index
A
Action Manager aus JavaScript verwenden, 75 aus VBScript verwenden, 76 JavaScript-Code aus AppleScript ausfhren, 80 JavaScript-Code aus VBScript ausfhren, 79 Skriptobjekte, 74 berblick, 73 Adobe Photoshop-Objektmodell, 11, 33 Aktionen Unterschiede zu Skripten, 8 verwenden, 73 Aktionenbedienfeld, 73 Aktive Objekte einrichten, 25 Anzeige-Dialogfelder, 33 AppleScript ausfhren, 18 erstellen, 18 JavaScript ausfhren, 10 Konventionen, 6 berlegungen zu Einheitenwerten, 56 Applescript Wrterbuch anzeigen, 21 Application-Objekt Anzeige-Dialogfelder, 33 aufrufen, 22 Bezug zur Benutzeroberflche, 14 berblick, 12 Verweise, 22 verwenden, 34 Art Layer-Objekt Bezug zur Benutzeroberflche, 15 erstellen, 37 Filter, 53 in JavaScript hinzufgen, 25 in VBScript hinzufgen, 24 Stile anwenden, 40 Textebene erstellen, 41 berblick, 12 Verweise, 38 verwenden, 36 Auf eine Ebene reduzierte Kopien, 55 Auswahlbereichkanle, 13

B
Bedingungslogik, 8 Befehle anzeigen, 21 Konventionen, 7 Berechnungen, Einheitenwerte, 57 Bilder, Komposition ndern, 12

C
Channel-Objekt aktiven Kanal festlegen, 28 aktivieren, 28 Bezug zur Benutzeroberflche, 15 Typ ndern, 46 berblick, 13 verwenden, 46 Channel-Objekt, Arten, 13 Color Sampler-Objekt Bezug zur Benutzeroberflche, 15 berblick, 14 Color-Objekt im DOM, 16 Color-Objekte abrufen und konvertieren, 52 auf Text anwenden, 64 Hexadezimalwerte festlegen, 52 berblick, 51 vergleichen, 53 verwenden, 51 Volltonfarben-Klassen, 52 websicher, 53 Count Item-Objekt Bezug zur Benutzeroberflche, 15 berblick, 14

D
Dateien Format angeben, 29 Format erkennen, 28 mit spezifischen Einstellungen ffnen, 29 ffnen, 28 speichern, 31 Dateierweiterungen Skriptdateien, 9

84

Index

85

Datentypen Konstanten, 16 Dialogfelder, steuern, 33 Die, 54 Document Info-Objekt Bezug zur Benutzeroberflche, 15 berblick, 13 verwenden, 47 Document-Objekt aktivieren, 26 Bezug zur Benutzeroberflche, 14 Dokumentinformationen, 47 hinzufgen, 24 manipulieren, 35 Maeinheitenwerte, 58 ffnen, 28 speichern, 31 berblick, 12 verwenden, 34 Dokumentobjektmodell (DOM), Siehe Objektmodell

H
Hello World-Skript, 1720 Hexadezimalfarbwerte festlegen, 52 Hierarchie, 11 History State-Objekt auf frheren Status zurcksetzen, 48 Bezug zur Benutzeroberflche, 15 lschen, 48 berblick, 13 verwenden, 47

J
JavaScript Action Manager verwenden, 75 aus AppleScript ausfhren, 10 aus VBScript ausfhren, 10 ausfhren, 10, 19 erstellen, 19 Konventionen, 6 Untersttzung, 10 Workflow-Automatisierungsbeispiel, 60

E
Eigenschaften Konventionen, 7 suchen, 21 Einfge-Befehle, 54 Einheiten als Eigenschaften, 57 als Parameter, 58 AppleScript-berlegungen, 56 festlegen, 59 in Argumenten, 58 in Berechnungen, 57 Sondertypen, 56 verwenden, 56 Werte, 56 Wertnutzung, 57 Enthaltenseinshierarchie, 11 EPS open options-Objekt, Maeinheitenwerte, 58 Ereignis-Benachrichtigung einrichten, 48 Ereignis-IDs mit ScriptListener suchen, 81

K
Klassen suchen, 21 Klassen-IDs mit ScriptListener suchen, 81 Komponentenkanle, 13 Konstanten suchen, 16, 21 berblick, 16 Konventionen, 6 Kopier- und Einfge-Befehle, 54 Kopieren, auf eine Ebene reduziert (Befehl), 55

L
Layer Comp-Objekt Bezug zur Benutzeroberflche, 15 berblick, 13 Layer Set-Objekt Bezug zur Benutzeroberflche, 15 erstellen, 38 berblick, 12 verwenden, 36, 39 Layer-Klassen, 12 Layer-Objekte aktivieren, 27 erstellen, 37 hinzufgen, 25 Stile zuweisen, 40 testen fr Textebenen, 41

F
Filter motionblur anwenden, 71 Schwingungen zuweisen, 6670 skriptfhig machen, 74 verwenden, 53 weitere, 54

Index

86

Typ bestimmen, 41 berblick, 12 verknpfen, 40 Verweise, 38 verwenden, 36 Lens flare open options-Objekt, Maeinheitenwerte, 58 Linealeinheiten festlegen, 59 berblick, 56 Werte, 56 Wertnutzung, 57 Logik, bedingte, 8

verwenden, 33 Offset filter-Objekt, Maeinheitenwerte, 58 Open options-Klassen, 16

P
Path Item-Objekt Bezug zur Benutzeroberflche, 15 gerade Linie erstellen, 49 berblick, 14 Path Point-Objekt berblick, 14 PDF open options-Objekt, Maeinheitenwerte, 58 Pfade erstellen, 49 Photoshop-Objektmodell, 11 Preferences-Objekt Bezug zur Benutzeroberflche, 15 berblick, 14 Protokollobjekte berblick, 47

M
Maskierungsbereichkanle, 13 Maeinheiten Dokumentvoreinstellungen, 61 verwenden, 56 Measurement Scale-Objekt Bezug zur Benutzeroberflche, 15 berblick, 14 Metadaten berblick, 15 Methoden anzeigen, 21 Konventionen, 7 motionblur-Filter berblick, 71

S
Sammlungen, VBScript-Indizierung, 11 Save options-Klassen, 16 Schwingungen-Filter zuweisen, 6670 ScriptListener deinstallieren, 74 Ereignis-IDs suchen, 81 installieren, 73 Klassen-IDs suchen, 81 Protokolldateien, 73 Skripten aufzeichnen, 74 Selection-Objekt Bereich definieren, 67 Bezug zur Benutzeroberflche, 14 erstellen, 43 fllen, 45 invertieren, 44 Kontur zuweisen, 44 laden, 45 skalieren, 44 speichern, 45 berblick, 13 verwenden, 42 weiche Kanten hinzufgen, 44 wiederherstellen, 46 Skripteditor verwenden, 18 Skripten aufzeichnen, 74 ausfhren, 10 Dateispeicherorte, 10

N
Notifier-Objekt Bezug zur Benutzeroberflche, 15 Ereignis-IDs suchen, 81 Klassen-IDs suchen, 81 berblick, 14 verwenden, 48 Numerische Werte suchen, 21

O
Objekte Siehe auch einzelne Objekte Adobe Photoshop-Objektmodell, 11 aktivieren, 25 anzeigen, 21 Hierarchie, 11 in Skripten erstellen, 2325 Objektmodell Grundlagen, 11

Index

87

erstellen, 60 erweitert, 60 Fhigkeiten, 8 Funktionen, 9 gltige Dateierweiterungen, 9 Objekte erstellen, 2325 Start-Skripten, 10 berblick, 8 Unterschiede zu Aktionen, 8 Skriptsprachen Beispielskripten, 17 untersttzte, 9 Speichern von Dokumenten, 31 Start-Skripten, 10 Stile auf Ebenen anwenden, 40 Sub Path Item-Objekt berblick, 14

Volltonfarben-Klassen, 52 Voreinstellungen festlegen, 32 verwenden, 61

W
Websichere Farben, 53 Workflow-Automatisierung, JavaScript, 60

Z
Zuweisen von Konturen Auswahlen, 44 Text, 64 Zwischenablage-Befehle, 54

T
Text Ebenen, 41 Farbe zuweisen, 64 formatieren, 42 Kontur zuweisen, 64 Text Item-Objekt erstellen, 41 Maeinheitenwerte, 58 Text formatieren, 42 berblick, 12 verwenden, 41 Textebenen, 41 Texteinheiten festlegen, 59 berblick, 56 Type Library, VBScript, 22 Typographische Konventionen, 6

U
bergeordnete Objekte berblick, 26

V
VBScript Action Manager verwenden, 76 ausfhren, 19 erstellen, 19 JavaScript ausfhren, 10 Konventionen, 6 Type Library, 22 Volltonfarbenkanle, 13

Vous aimerez peut-être aussi