Seřazení vstrev podle abecedy

lekce 6.

Automatizování úloh v Adobe Photoshop

Pomocí skriptovacího jazyka JavaScript

Cíl lekce

Emboss.

Cílem této krátké lekce je vytvořit emboss. U embossingu dochází k vytlačování vzoru (obrazců) nebo textu do hloubky podkladu. Zárveň bych v této lekci ukázal práci s třídami ActionReference a ActionDescriptor a volání akce z panelu Akce v programu Adobe Photoshop.

lekce_4Puvodni.png

Původní obrázek - obrázek 6.1

lekce_4Vysledny.png

Emboss - obrázek 6.2


Využité třídy v této lekci

  • Descriptor: třída pro popis akce.
  • Konstanty: konstanty jako klíče pro ActionDescriptor.

ActionDescriptor, ActionReference

ActionDescriptor: udává záznam páru, klíč – hodnota pro akce, jako jsou například akce dostupné z panelu Akcí v prostředí. Je součástí Správce akcí. ActionReference: obsahuje data popisující odkazovanou akci. Referenční objekt akce je také součástí funkce Správce akcí.


Konstanty

Abych mohl provést akci emboss, musím do ActionDescriptoru vložit hodnoty klíče. Jedná se tedy o klíče: Angl úhel, Hght výška, Amnt množství. Dále použiji Embs pro identifikaci akce Emboss.


Funkce emboss

Nyní už jen zbývá vytvořit funkci emboss s parametry úhel, výška a množství. Získání ID událostí a vložení klíčů a hodnot do ActionDescriptoru pomocí metody putIteger(). Pak již mohu zavolat metodu executeAction s ID události emboss.


function emboss(inAngle, inHeight, inAmount){
    //konstanty
    var keyAngleID = app.charIDToTypeID('Angl');
    var keyHeightID = app.charIDToTypeID('Hght');
    var keyAmountID = app.charIDToTypeID('Amnt')
    var eventEmbossID = app.charIDToTypeID('Embs');

	//vložení hodnot do descriptoru
    var filterDescriptor = new ActionDescriptor();
    filterDescriptor.putInteger(keyAngleID, inAngle)
    filterDescriptor.putInteger(keyHeightID, inHeight)
    filterDescriptor.putInteger(keyAmountID, inAmount)
	//provedení akce
    app.executeAction(eventEmbossID, filterDescriptor)
}

Výsledný zdrojový kód


if (documents.length) {
	emboss( 60, 10, 60);
}else{
	alert("Žádný dokument není otevřený.", "Varování");
}
function emboss(inAngle, inHeight, inAmount){
    //konstanty
    var keyAngleID = app.charIDToTypeID('Angl');
    var keyHeightID = app.charIDToTypeID('Hght');
    var keyAmountID = app.charIDToTypeID('Amnt')
    var eventEmbossID = app.charIDToTypeID('Embs');

	//vložení hodnot do descriptoru
    var filterDescriptor = new ActionDescriptor();
    filterDescriptor.putInteger(keyAngleID, inAngle)
    filterDescriptor.putInteger(keyHeightID, inHeight)
    filterDescriptor.putInteger(keyAmountID, inAmount)
	//provedení akce
    app.executeAction(eventEmbossID, filterDescriptor)
}