Diesen Tipp in Originalversion zeigen.
Scripten mit Photoshop (Teil 1)
1.Einleitung/Allgemeines
Dieser Artikel richtet sich an Einsteiger, die noch nie etwas mit Photoshop gescriptet haben.
Es ist wirklich eine Step by Step Anleitung, also für erfahrene User sicher nicht wirklich intressant (ändert sich aber dann im evtl. Folgenden). Geschrieben ist es für Visual Basic Script (kurz VBS). Ich habe mich für diese Scriptsprache entschieden, weil ich diese am besten beherrsche. Man kann für PS in mehreren Sprachen coden:
- Javascript (Vorteil: plattformunabhängig, direkt in PS aufrufbar)
- VBScript (Nachteil: läuft nur unter Windows, nicht direkt in PS aufrufbar)
- AppleScript (Nachteil: läuft nur unter Mac OS)
Anfangs habe ich meine Scripte direkt in Visual Basic (VB) gecodet, was aber nicht nur Vorteile bringt, sondern den Nachteil, dass das Ganze am Ende in eine EXE-Datei kompiliert wird. Da im Zeitalter der Viren, Würmer und Trojaner nicht jeder eine beliebige EXE ausführen will/sollte (mich eingeschlossen), bin ich dann auf VBS umgestiegen, da hier der komplette Code sichtbar ist (wobei auch damit die meisten nichts anzufangen wissen).
Der große Vorteil bei VB ist das Erstellen einer GUI (General User Interface; also eine grafische Benutzeroberfläche), auf welcher der User Eingaben machen kann.Allerdings benötigt man hier außerdem einen Compiler (z. B. Microsoft Visual Basic), wogegen für die Scriptsprache VBS (Visual Basic Script) ein einfacher Editor ausreichend ist, jeder also selber experimentieren kann.
2.Voraussetzungen
Voraussetzungen gibt es nicht allzu viele. Zum Einen benötigt man Photoshop ab v7 aufwärts, außerdem noch einen beliebigen Editor wie z.B. Notepad. Etwas komfortabler geht es natürlich mit Scripteditoren (z. B. Spy 3.0 oder Phase 5). Um nur einige zu nennen:
Von Vorteil bzw. wenn man nicht nur abtippen, sondern auch selber was machen will, ist natürlich die VisualBasicReferenceGuide.pdf, die aber eigentlich jeder haben sollte (...\Adobe\Photoshop\Script Handbuch\) oder man sich aber bei Adobe runterladen kann.
Ein paar VB-Kenntnisse wären natürlich auch nicht schlecht (aber für diesen Artikel nicht notwendig).
Wollen wir jetzt endlich einmal etwas scripten?
3.Das erste Script
3.1 Vorbereitung
Noch scripten wir nicht wirklich, aber später schreiben wir dann kleine Scripts.
Sofern nicht schon geschehen, aktivieren Sie den ScriptListener (SL), der unter "...\Adobe\Photoshop CS\Skript Handbuch\Hilfsprogramme\ScriptListener.8li" zu finden ist. Also ab damit in Ihren Pluginordner und los geht’s. Der Listener legt 2 Dateien an: "ScriptingListenerVB.log“ und "ScriptingListenerJS.log“. (bei mir unter C:\ - ansonsten mal danach suchen). Für uns intressant ist natürlich nur die "ScriptingListenerVB.log“.
3.2 Wir zeichnen einen Kreis
Fangen wir also erstmal klein an: Wir lassen durch ein Script einen Kreis zeichnen. Wechseln wir also zu PS und erstellen ein neues Dokument. Manche werden es sich schon gedacht haben, aber auch dieser Schritt wird durch den SL aufgezeichnet. Den Schritt brauchen wir natürlich nicht (das machen wir später komfortabler), also löschen wir erst mal die "ScriptingListenerVB.log“. Nun ziehen wir ein kreisförmige Auswahl auf (bei gedrückter Shift-Taste) und füllen die Kontur (Menü Bearbeiten --> Kontur füllen, oder über Kontextmenü). Ich habe einen Kreis gewählt, weil man diesen nicht direkt per Befehl zeichnen lassen kann. Das war es schon fürs erste.
Öffnen wir jetzt die "ScriptingListenerVB.log“ in einem Editor. Sollten Sie für .log-Dateien keine Verknüpfung haben, können Sie die Endung auch in .txt umwandeln und anschließend per Doppelklick öffnen.
Sie sehen nun ein absolutes Chaos aus Buchstaben und Zahlen, bei dem man nur recht schwer durchsteigen kann, aber keine Angst, das wird noch. Nicht dadurch entmutigen lassen, später wird es übersichtlicher.
Jeder aufgezeichnete Befehl fängt mit "REM =====" an. Und schon haben wir das Erste gelernt, eine Zeile, die mit REM beginnt (oder auch mit ') ist kein Befehl, sondern ein Kommentar.
Ihr erster Befehl sollte folgendermaßen aussehen:
REM =====================================================
DIM objApp
SET objApp = CreateObject("Photoshop.Application")
REM Use dialog mode 3 for show no dialogs
DIM dialogMode
dialogMode = 3
DIM id83
.
.
.
Call desc15.PutUnitDouble( id88, id89, 87.000000 )
DIM id90
id90 = objApp.CharIDToTypeID( "Left" )
DIM id91
id91 = objApp.CharIDToTypeID( "#Rlt" )
Call desc15.PutUnitDouble( id90, id91, 71.000000 )
DIM id92
id92 = objApp.CharIDToTypeID( "Btom" )
DIM id93
id93 = objApp.CharIDToTypeID( "#Rlt" )
Call desc15.PutUnitDouble( id92, id93, 434.000000 )
DIM id94
id94 = objApp.CharIDToTypeID( "Rght" )
DIM id95
id95 = objApp.CharIDToTypeID( "#Rlt" )
Call desc15.PutUnitDouble( id94, id95, 418.000000 )
DIM id96
id96 = objApp.CharIDToTypeID( "Elps" )
Call desc14.PutObject( id87, id96, desc15 )
DIM id97
id97 = objApp.CharIDToTypeID( "AntA" )
Call desc14.PutBoolean( id97, True )
Call objApp.ExecuteAction( id83, desc14, dialogMode )
Kopieren wir nun diesen Teil in einen Editor unserer Wahl und speichern das als ‚Auswahl.vbs’ in einem beliebigen Ordner. Wechseln wir jetzt nochmal fix zu PS und erstellen ein neues Dokument. Nun gehen wir in den Dateibrowser und starten unser Script ("Auswahl.vbs") per Doppelklick.
Was hatten wir doch als erstes in PS aufgezeichnet? Genau, wir haben eine Auswahl erstellt. Schauen wir doch mal in PS nach...und ja, es hat geklappt. Öffnen wir also unser Script wieder im Editor und fügen den 2. Befehl (Kontur füllen) hintendran, der in etwa so aussehen sollte:
REM =======================================================
DIM objApp
SET objApp = CreateObject("Photoshop.Application")
REM Use dialog mode 3 for show no dialogs
DIM dialogMode
dialogMode = 3
DIM id98
id98 = objApp.CharIDToTypeID( "Strk" )
DIM desc16
SET desc16 = CreateObject( "Photoshop.ActionDescriptor" )
DIM id99
.
.
.
( id112, 0.000000 )
DIM id113
id113 = objApp.CharIDToTypeID( "CMYC" )
Call desc16.PutObject( id108, id113, desc17 )
Call objApp.ExecuteAction( id98, desc16, dialogMode )
Die oberen Zeilen des 2. Befehls (bis einschließlich "dialogMode=3") löschen wir, da der Befehl oben schon einmal steht. Jetzt speichern wir das Script wieder und legen ein neues Dokument oder eine neue Ebene in PS an. Führen Sie nun das Script aus und siehe da, der gleiche Kreis, den wir am Anfang gezeichnet haben, strahlt uns entgegen. Wir haben unser erstes Script zum Laufen gebracht.
Jetzt denkt mit Sicherheit jeder: "Und was hat uns das gebracht?“ - Nun, bis jetzt nichts, aber schauen wir uns den Code (das Script) doch einmal an.
3.3 Wir zeichnen einen Kreis
Öffnen wir das Script also wieder einmal im Editor. Fallen Ihnen nicht auch die vier Zahlen (in meinem Bsp. 87.0, 71.0, 434.0, 418.0) auf? Schauem Sie einmal jeweils 3 Zeilen höher: "Top“, "Left“, "Btom“ (Bottom), "Rght" (Right). Das klingt doch schon ganz aufschlussreich. Dies sind die Koordinaten, mit welchen wir die Auswahl gezeichnet haben.
Ersetzen wir doch die Zahlen einfach einmal durch Variablen (sodass wir dynamisch die Werte ändern können). Also ändert sich Folgendes:
- 87.0 wird zu "oben"
- 71.0 wird zu "links"
- 434.0 wird zu "unten"
- 418.0 wird zu "rechts"
Nun können wir im Code die Variablen ändern, indem wir ihnen andere Werte zuweisen. Fügen wir also in unserem Script an oberster Stelle folgendes ein:
oben = 0
links = 0
unten = 500
rechts = 500
Ich bin davon ausgegangen, dass ein Dokument mit 500x500px geöffnet ist, passt die Zahlen ansonsten an eure Maße anpassen.
Führen wir das Script nun aus, erhalten wir einen Kreis, der das komplette Dokument ausfüllt.
Das sollte für den Anfang auch reichen. Geben Sie einfach einmal unterschiedliche Werte für die Koordinaten ein, um zu sehen wie es funktioniert.
Genauso können Sie auch weitere Befehle ausführen, aufzeichnen und im Script verarbeiten.
Autor: hotschen ()
Copyright (c) 2002-2005 by Andreas Schroth
URL: www.computer-tipps.net/software68.html