3. Skripty – psaní a editace

Co je potřeba k psaní skriptů. Záznam úkonů PS do skriptu a jeho editace.

Minule jsme si ukázali, jak nainstalovat a spustit skripty. Dnes se podíváme na to jak skripty vytvářet.

Skripty je možné zapisovat v jakémkoli textovém editoru. Lépe je ale nainstalovat si Adobe ExtendScript Toolkit CC pomocí CreativeCloud a skripty vytvářet v jeho editoru, který soubor skriptu zobrazuje různými barvami (například poznámky zeleně, klíčová slova modře atp.) Ze stránek Adobe si také můžete stáhnout dokumentaci pro psaní skriptů Scripting Guide a Java scripting reference. Další příručky i pro nižší verze PS je  možné si stáhnout odtud. Z jiných webů zabývajících se skripty se mi osvědčil nejvíce web Trevora Morrise, kde naleznete návody na tvorbu skriptů i skripty volně ke stažení.

Tento způsob tvorby skriptů, je ale poněkud těžkopádný a vyžaduje znalost názvů událostí ve PS a jejich ID řetězců, jak jsou uvedeny v příloze A Java scripting reference. Jak jsem zjistil, nejsou tam ale všechny uvedeny. Existují dva způsoby, jak si nechat soubor skriptu vytvořit automaticky. Takový soubor si pak můžete v editoru upravit. Například nahradit konkrétní hodnoty jinými, nebo je nahradit proměnnými a ty zadávat v dialogu. Vše si postupně ukážeme.

Prvním způsobem je do skriptu převést uloženou akci. Druhým pak, zaznamenat do skriptového souboru naši činnost ve PS. Já dávám přednost druhému způsobu, ale pokud byste chtěli zkusit první, stáhněte si skript ConvertActionsToSripts, nainstalujte si ho podobně jako ve druhém díle ActionXML skript a vyzkoušejte. Práce je obdobná jako u ActionXML. Pro druhou možnost je potřeba si stáhnout rozšíření Scripting Listener Plug-in . Pro instalaci je potřeba Zip rozbalit a adresář Scripting Utilities zkopírovat do adresáře Plug-ins vaší instalace PS (Typicky : C:Program FilesAdobeAdobe Photoshop CC 2018Plug-ins). Tento program pak zajistí, že převede veškerou Vaši činnost ve PS (u které je to možné), do souboru  ScriptingListenerJS.log a ten uloží na plochu. Ze souboru si můžete kopírovat potřebný kód, nebo si do něj připisovat poznámky, případně ho kdykoliv smazat. Soubor se bude vytvářet a na jeho konec připisovat dění ve PS tak dlouho, dokud program neodinstalujete. To se udělá jednoduše smazáním celého adresáře Scripting Utilities. 

Zkusme si teď zaznamenat skript, který bude dělat to, co naše akce na zvýraznění barev z prvního dílu. Nejprve si otevřeme libovolnou fotografii. Pak si smažeme z plochy soubor ScriptingListenerJS.log, abychom v něm měli jen to co se bude od teď dít. Pak provedeme totéž, co při nahrávání akce v prvním díle. Změníme režim na LAB, v křivkách upravíme kanály A a B a změníme režim zpět na RGB. Podívejme se, co se nám do souboru zapsalo.

Vidíme, že jednotlivé činnosti PS jsou odděleny řádkem s poznámkou :

// =======================================================

Do ní si můžeme připsat, o jakou činnost se jednalo. Pod tímto řádkem, je řádek s činností PS. Pokud se v něm objeví

"modalStateChanged"

jako v našem příkladě, celou ji ignorujte, nebo smažte. Při spuštění, by takový skript nefungoval. Další činnosti jsou už zajímavější:

var idCnvM = charIDToTypeID( "CnvM" );
    var desc14 = new ActionDescriptor();
    var idT = charIDToTypeID( "T   " );
    var idLbCM = charIDToTypeID( "LbCM" );

je změna barevného prostoru na LAB.

Následuje dvakrát:

"modalStateChanged"

které smažeme a činnost začínající:

var idCrvs = charIDToTypeID( "Crvs" );
    var desc17 = new ActionDescriptor();

je dialog křivek i s nastavením. To jak jsme křivky posunuli je vidět na řádcích:

                    desc19.putDouble( idHrzn, 28.000000 );

nebo:

                    desc20.putDouble( idHrzn, 228.000000 );

Opět následují dvě “zbytečné” činnosti:

"modalStateChanged"

a po nich činnost:

var idCnvM = charIDToTypeID( "CnvM" );
    var desc26 = new ActionDescriptor();
    var idT = charIDToTypeID( "T   " );
    var idRGBM = charIDToTypeID( "RGBM" );

která převede fotku do RGB.

Upravíme si tedy tento soubor tak, že smažeme všechny činnosti:

"modalStateChanged"

a uložme jej pod názvem ZvyrazniBarvy.jsx. Obsah souboru teď vypadá takto. Pokud si skript pustíme, provedou se změny barev stejně, jako když jsme jej zaznamenávali, nebo když jsme vytvářeli akci v prvním díle. Soubor se skriptem si můžeme zkopírovat do jiného souboru, například ZvyrazniBarvy2.jsx a v něm zeditovat řádky s nastavením posunů křivek z 28 na 48 a z 228 na 208 (t.j. vždy o 20 blíže středu). Obsah souboru teď vypadá takto. Pokud si skript pustíme, uvidíme, že změny barev jsou větší. Oba skripty si můžete stáhnout zde.

Máme tedy dva skripty, každý pro jinak výraznou úpravu barev podobně, jako jsme měli dvě akce ve druhém díle.

Říkáte si, proč nezůstat u akcí a proč se mořit se skripty? U akce můžeme zadat přerušení v dialogu křivek a vždy si je nastavit jinak. Ano, ale pomocí skriptů si můžeme posun v křivkách zadat jako jednu hodnotu v “našem” dialogu (místo přepínání kanálů a zadávání čtyř hodnot ve křivkách) a mít jeden univerzální skript s jednodušším zadáváním. Na spuštění takového skriptu si pak můžeme udělat akci. Získáme tak akci, která bude podobná té původní “klasické”, ale s jednodušším zadáváním.

Příště si ukážeme jak ve skriptu vytvářet funkce s parametry a tyto parametry zadávat v dialogu.

P.S. pokud chcete svůj skript šířit a nechcete, aby ho mohli jeho uživatelé upravovat, nebo “opisovat”, můžete jej pomocí editoru Adobe ExtendScript Toolkit CC vyexportovat jako binární soubor s příponou jsxbin. V menu File zvolte Export as Binary… nebo použijte klávesovou zkratku Shift+Ctrl+E.