Javascript für PS, AI, ID – Adobe ExtendScript

Javascript für PS, AI, ID – Adobe ExtendScript | PSD-Tutorials.de

Erstellt von pixxxelschubser, 31.05.2015.

  1. pixxxelschubser

    pixxxelschubser Realist

    Dabei seit:
    19.02.2008
    Beiträge:
    7.155
    Software:
    für jeden Zweck das Richtige
    Kameratyp:
    hab ich auch
    Javascript für PS, AI, ID – Adobe ExtendScript
    Dann möchte ich doch die Lanze für diese wunderschöne neue und „jungfräuliche“ Kategorie brechen.

    Deshalb für alle, die es interessiert, ein „kleiner“ Einstieg in die Programmierung:
    Man braucht im Grunde genommen nur zwei Dinge, etwas Abstraktionsvermögen und eine gehörige Portion Durchhaltevermögen. Alles andere ergibt sich dann fast von alleine.

    Programmieren kann man prinzipiell in jedem Editor – theoretisch sogar im Windows-Editor. Aber sowohl die fehlende Auszeichnung von z.B. reservierten Wörtern oder auch das umständliche Abspeichern als txt-Datei mit anschließendem Umbenennen als jsx-Datei erschweren das Ganze dann doch ziemlich.

    Adobe liefert bei der CS und/oder CC oder auch bei verschiedenen Einzelprodukten wie z.B. InDesign einen eigenen Editor mit: das ExtendScript Toolkit (kurz ESTK). Obwohl auch dieses Tool seine Schwächen hat, kommt man nach kurzer Eingewöhnungsphase recht gut damit klar. Der große Vorteil dieses Tools liegt darin, dass man das jeweilige (Document Object Model) DOM der Einzelprogramme direkt über die Menüleiste in einem eigenen Objektmodell-Viewer (nachfolgend OMV) laden kann. Doch auch diejenigen, die einen anderen Editor bevorzugen, können auf Alternativen zum OMV zurückgreifen. Eine Möglichkeit: auf Jongware.com findet man viele DOM im HTML oder auch im CHM-Format.

    -----------------------------------------------------

    Normalerweise sind alle Scripte programmbezogen, d.h. ein PS-Script kann nicht in ID oder AI verwendet werden. Denn jedes Programm hat sein eigenes DOM. Sofern man allerdings wirklich nur gemeinsame Komponenten der Script-UI oder aber garantiert keinerlei Bestandteile des programmspezifischen DOM im Scripting verwendet, dann (und NUR DANN!) sind die Scripte auch programmübergreifend verwendbar.
    Das einfachste programmübergreifende Beispiel ist das Hello-world-Script:
    Code (Javascript):
    1. alert("Hello world");
    Etwas abgewandelt und mit einigen DOM-Elementen, die in allen Programmen gleich vorhanden sind, funktioniert das auch noch:
    Code (Javascript):
    1. alert(app.documents[0].name);
    Schade, aber damit ist dann eigentlich auch schon (fast) Schluss mit programmübergreifend!
    Denn es ist etwas völlig anderes, ob man ein Bild in Photoshop auf eine andere Größe bringen – oder ob man das Gleiche mit Illustrator durchführen möchte. Und schließlich sind programmspezifische Scripts wesentlich effektiver und vorteilhafter in der Handhabung.

    Einige gute einfache Beispiele könnt ihr mit der Suche nach "sample sc" (oder auch "beispiel") auf eurem Rechner im Adobe-Programmpfad finden. Je nach Betriebssystem gibt es dann Javascript- und Visual-Basic-Samples unter Windows oder Javascript- und Applescript-Samples unter Mac OS. Persönlich bevorzuge ich aber eher Javascripts. Damit ist zwar etwas „weniger möglich“ als mit den Betriebssystem-Pendants, dafür kann man Javascripts betriebssystemübergreifend einsetzen.

    -----------------------------------------------------

    Leider kann man nicht alles, was über die Benutzeroberfläche eingestellt wird auch per Script angesteuern. Dafür gibt es dann aber auch ein paar (wenige) Dinge, die ausschließlich per Script möglich sind.

    Und nein, es gibt keine vorgefertigten Bausteinsysteme, die man einfach nur kombiniert. Dieses Scripting ist ganz trivial ausgedrückt einfach nur ein Zeile-für Zeile-für Zeile-programmieren.

    Und es gibt definitiv ein paar grundlegende Unterschiede zwischen PS-, ID- und AI-Scripting. Während man in ID fast alles per Script „ansprechen“ kann, sind die Möglichkeiten in PS und AI doch um einiges geringer. In PS kann man dieses Manko teilweise durch mit dem ScriptListener aufgezeichneten ActionManager-Code (AM-Code) wieder ausgleichen. Aber AI wurde und wird in punkto Scripting leider schon immer ziemlich stiefmütterlich behandelt.

    Und noch ein wesentlicher Unterschied: Während man in PS und in AI die Skripte über das entsprechende Untermenü im Menü Datei startet, ruft man Scripte in ID über die gleichnamige Palette auf. In ID hat man darüber hinaus noch den Vorteil, dass man die Scripte (wenn gewünscht oder erforderlich) direkt mittels Alt+Doppelklick auf den Scriptnamen im ESTK öffnen und/oder bearbeiten kann.

    Und hier noch ein paar kleine Beispiele, die zeigen, wie einem bereits kleine Scriptschnipsel das Leben erleichtern können:
    https://www.psd-tutorials.de/forum/...es-schriftzuges-umkehren.168889/#post-2507903
    https://www.psd-tutorials.de/forum/...let-mit-ohne-arbeitspfad.165222/#post-2424869
    https://www.psd-tutorials.de/forum/threads/objekte-um-denselben-winkel-drehen.164640/#post-2411241
    https://www.psd-tutorials.de/forum/...berreiche-zusammenfuegen.164327/#post-2403804
    https://www.psd-tutorials.de/forum/...-exif-daten-in-photoshop.159115/#post-2283414
    https://www.psd-tutorials.de/forum/...utomatischen-namen-geben.154668/#post-2193788
    https://www.psd-tutorials.de/forum/threads/photoshop-cs-5-javascript.146251/#post-2038984
    https://www.psd-tutorials.de/forum/threads/irgendetwas-fehlt-hier.169009/page-4#post-2513638

    Oder hier noch ein ausführlicheres Script von @goldmoon
    https://www.psd-tutorials.de/forum/...edlicher-groesse-kopieren.80541/#post-1040507
    Hier im Forum können mit den Suchwörtern "Skripte" oder "Scripte" noch viel mehr Beispiele gefunden werden. Diese sind halt (bislang mangels Kategorie, was sich ja erfreulicherweise geändert hat) im kompletten Forum „verstreut".

    Dann viel Spass und Vergnügen beim Scripten
    (und stellt eure Frage bitte als eigenständiges Thema mit Angabe von Programm, Programmversion, Sprache des Scripts und am Besten mit vorher/nachher-Beispieldateien oder zumindest mit vorher/nachher-Screenshots ein!)
    ;)
     
    #1      
    keul3, antonio_mo und patrick_l gefällt das.
  2. TutKit

    TutKit Vollzugriff

    Vollzugriff auf sämtliche Inhalte für Photoshop, InDesign, Affinity, 3D, Video & Office

    Suchst du einen effektiven Weg, um deine Geschäftsideen aber auch persönlichen Kenntnisse zu fördern? Teste unsere Lösung mit Vollzugriff auf Tutorials und Vorlagen/Erweiterungen, die dich schneller zum Ziel bringen. Klicke jetzt hier und teste uns kostenlos!

  3. antonio_mo

    antonio_mo Guest

    Javascript für PS, AI, ID – Adobe ExtendScript
    #2      
    pixxxelschubser und patrick_l gefällt das.
  4. antonio_mo

    antonio_mo Guest

    Javascript für PS, AI, ID – Adobe ExtendScript
    #3      
    patrick_l und pixxxelschubser gefällt das.
  5. Diskord

    Diskord Ja ... mmhmmm ... genau!

    Dabei seit:
    14.12.2009
    Beiträge:
    1.139
    Geschlecht:
    männlich
    Ort:
    Mainz
    Software:
    CC 2019/2020, macOS 10.14.6
    Javascript für PS, AI, ID – Adobe ExtendScript
    Ich hatte mir damals die erste Fassung des Buches zugelegt und kann es nur empfehlen. Perfekt für den Einstieg ins Thema!
     
    #4      
    patrick_l gefällt das.
  6. PSD Spider

    PSD Spider Noch nicht viel geschrieben

    Dabei seit:
    17.09.2015
    Beiträge:
    4
    Geschlecht:
    männlich
    Javascript für PS, AI, ID – Adobe ExtendScript
    Hallo pixxxelschubser,
    so sieht man sich wieder ;)
    Haben in der Adobe Community schon geschrieben...

    Programm (Photoshop-Skript)
    1. Das Skriptprogramm ImageConverter ist ein sehr wichtigstes Tool bei der Bildbearbeitung. Es bereitet die jeweiligen Bilder für die weitere Verarbeitung vor. Dabei werden die Bilddateien nach vordefinierten Parametern ins entsprechende Format (jpg) konvertiert und dabei in folgende Ordner vorsortiert.
    - To_Check_Path = Kein Freistellungspfad vorhanden oder aktiv
    - To_Check_Size = Abbildung laut Vorgaben zu klein
    - To_Check_Weitere = Abbildung entspricht nicht den Vorgaben
    - ZUM_BEARBEITEN_done = Abbildung ist ok, kann Eingelesen werden

    Die Abbildungen werden auf folgende Parameter/Vorgaben geprüft um ins System
    aufgenommen zu werden.
    a) Farbprofil: eciRGB v2 – Im Frontend einstellbar
    b) Auflösung: 300 dpi (genauer 304,8) – Im Frontend einstellbar
    c) Format: JPG
    d) Größe: min. 5 cm; max. 21 cm – Im Frontend einstellbar
    e) Beschneidung: Freistellungspfad aktiv, Beschneidung auf Pfad – Im Frontend einstellbar
    f) Quelle/Zielort: Server/lokaler Rechner - – Im Frontend einstellbar

    Der Converter wandelt alle gängigen Formate in das Zielformat „JPG“ um. Die Größenprüfung verkleinert alle Bilder die größer als Vorgabe sind dementsprechend. Dabei wird auch ein Größenverhältnis von 1:4 berücksichtigt, um Bilder die extrem breit oder hoch sind nicht zu sehr zu verkleinern. Das Skript erkennt einen aktiven Freistellungspfad und beschneidet dementsprechend.
    Funktionsweise im Detail:
    - Öffnen der Bilddatei von einstellbarer Quelle mit Photoshop
    - Erstellen einer Log-Datei
    - Prüfen der eingestellten Vorgaben
    - Anwenden der Vorgaben auf das Bild (eciRGB c2, 304,8 dpi, Auf Pfad beschneiden, Bild verkleinern wenn nötig falls größer als 21 cm, Berücksichtigung des Größenverhältnisses 1:4)
    - Speichern der Datei in vordefinierten Ordner (To_Check_Path, To_Check_Size etc.) auf einstellbarem Zielort.
    - Öffnen der nächsten Bilddateien bis Job fertig

    4. Must-haves für die Umsetzung
    a) Frontend für das Script
    b) Einstellbare Felder/Auswahlfelder für die Vorgaben
    c) Erkennung aktiver Bildpfade aus Photoshop
    d) Öffnen, beschneiden, Photoshop-Funktionen ansteuern, speichern
    e) Unterstützung aller gängigen Bildformate
    f) …

    5. Nice-to-have
    a) Benamungsroutine für die Bilddateien
    b) STOP-Button
    c) …

    Gruß
    PSD Spider
     
    #5      
Seobility SEO Tool
x
×
×