Ugrás a fő tartalomra

PS21 és scriptelés 2

 

 PS21 és scriptelés 2



A Photoshop CC 2021-ben (PS21) az egyedi akciók automatizálása JavaScript (ExtendScript) segítségével hatékony módja annak, hogy összetett műveletsorozatokat vagy gyakran ismétlődő feladatokat programozottan végezz el. 

Az akciók (Actions) a Photoshop beépített eszközei, amelyek rögzítik a felhasználói műveleteket (pl. szűrők alkalmazása, rétegek módosítása), és visszajátszhatók más képeken. 

A JavaScripttel ezek az akciók meghívhatók, kombinálhatók, vagy akár dinamikus feltételekhez köthetők, így rugalmasabb és hatékonyabb automatizálást érhetsz el. 

Az alábbiakban részletezem az egyedi akciók automatizálásának lehetőségeit, példákkal és magyarázatokkal.

Miért hasznos az akciók automatizálása JavaScripttel?

Gyorsaság: Az akciók manuális visszajátszása helyett szkriptekkel tömegesen futtathatsz műveleteket.
Rugalmasság: Dinamikus paramétereket adhatsz meg (pl. fájlnevek, méretek, feltételek).
Tömeges feldolgozás: Több száz képen is végrehajthatsz akciókat egyetlen szkripttel.
Kombinálás: Több akciót vagy egyedi logikát fűzhetsz össze, amit az Actions panel önmagában nem tud.
Hibakezelés: 
A szkriptek lehetővé teszik az ellenőrzéseket és hibakezelést, így robosztusabb az automatizálás.

Hogyan működnek az akciók a JavaScriptben?
A Photoshop JavaScript API-ja lehetővé teszi, hogy az Actions panelben létrehozott akciókat meghívd a doAction függvénnyel. Az akciókat az Action Set (akciókészlet) és az Action Name (akció neve) alapján azonosítod. A szkriptben megadhatod, hogy melyik akciót futtassa, és kombinálhatod más műveletekkel (pl. fájlkezelés, rétegmanipuláció).Alapvető szintaxis:javascript

app.doAction("AkcióNeve", "AkcióKészletNeve");

AkcióNeve: Az akció neve, ahogy az Actions panelben szerepel.
AkcióKészletNeve: Az akciókészlet neve, amelyben az akció található.

Az akciókat előbb létre kell hoznod a Photoshop Actions paneljében (Window > Actions), majd a szkripttel meghívhatod őket.Példák az egyedi akciók automatizálására1. Egyszerű akció futtatása egy képenTegyük fel, hogy van egy "FeketeFehér" nevű akció egy "SajátAkciók" nevű akciókészletben, amely egy képet fekete-fehérré konvertál.javascript

// Egyszerű akció futtatása
var doc = app.activeDocument;
app.doAction("FeketeFehér", "SajátAkciók"); // Akció meghívása
var saveFile = new File("~/Desktop/kimenet.jpg");
var jpgSaveOptions = new JPEGSaveOptions();
jpgSaveOptions.quality = 10;
doc.saveAs(saveFile, jpgSaveOptions); // Mentés
doc.close(SaveOptions.DONOTSAVECHANGES); // Bezárás

Magyarázat:
A szkript futtatja a "FeketeFehér" akciót, majd elmenti és bezárja a képet.
Hasznos, ha egy előre rögzített akciót (pl. szűrők kombinációját) akarsz alkalmazni.

Használat: 
Egyszerű feladatokhoz, pl. szűrők alkalmazása egy képre.2. Tömeges akció futtatása egy mappában lévő képekenEz a szkript egy mappában lévő összes JPG képre alkalmaz egy akciót, majd egy output mappába menti az eredményt.javascript

// Tömeges akció futtatása
var inputFolder = Folder.selectDialog("Válassz egy mappát a képekkel");
var outputFolder = Folder.selectDialog("Válassz egy mappát a mentéshez");

if (inputFolder != null && outputFolder != null) {
    var fileList = inputFolder.getFiles("*.jpg"); // JPG fájlok gyűjtése
    for (var i = 0; i < fileList.length; i++) {
        var doc = app.open(fileList[i]); // Kép megnyitása
        app.doAction("FeketeFehér", "SajátAkciók"); // Akció futtatása
        var saveFile = new File(outputFolder + "/" + doc.name);
        var jpgSaveOptions = new JPEGSaveOptions();
        jpgSaveOptions.quality = 10;
        doc.saveAs(saveFile, jpgSaveOptions); // Mentés
        doc.close(SaveOptions.DONOTSAVECHANGES); // Bezárás
    }
    alert("Kész! " + fileList.length + " kép feldolgozva.");
}

Magyarázat:
A szkript végigmegy egy mappában lévő összes JPG fájlon, megnyitja őket, futtatja a "FeketeFehér" akciót, majd elmenti az eredményt.
A Folder.selectDialog lehetővé teszi a felhasználó számára a mappák kiválasztását.

Használat: 
Tömeges képfeldolgozás, pl. fotók szűrőzése vagy átalakítása.

3. Feltételes akció futtatása (pl. képméret alapján)Ez a szkript csak akkor futtat egy akciót, ha a kép szélessége nagyobb, mint 1000 pixel.javascript

// Feltételes akció futtatása
var doc = app.activeDocument;
if (doc.width > UnitValue(1000, "px")) {
    app.doAction("Átméretezés", "SajátAkciók"); // Pl. átméretezés akció
} else {
    app.doAction("KisKépSzűrő", "SajátAkciók"); // Más akció kisebb képekre
}
var saveFile = new File("~/Desktop/kimenet.jpg");
var jpgSaveOptions = new JPEGSaveOptions();
jpgSaveOptions.quality = 10;
doc.saveAs(saveFile, jpgSaveOptions);

Magyarázat:
A doc.width lekéri a kép szélességét pixelben.
Feltételes logika (if) alapján különböző akciókat futtat a kép mérete szerint.

Használat: 
Dinamikus döntéshozatal, pl. különböző szűrők alkalmazása a kép tulajdonságai alapján.4. Több akció kombinálása egy munkafolyamatbanEz a szkript két akciót futtat egymás után, majd hozzáad egy szövegréteget.javascript

// Több akció és szöveg hozzáadása
var doc = app.activeDocument;
app.doAction("FeketeFehér", "SajátAkciók"); // Első akció
app.doAction("Élesítés", "SajátAkciók"); // Második akció

// Szövegréteg hozzáadása
var textLayer = doc.artLayers.add();
textLayer.kind = LayerKind.TEXT;
textLayer.textItem.contents = "Automatizált kép";
textLayer.textItem.size = 24;
textLayer.textItem.font = "Arial";
textLayer.textItem.position = [50, 50];

var saveFile = new File("~/Desktop/kimenet.png");
var pngSaveOptions = new PNGSaveOptions();
doc.saveAs(saveFile, pngSaveOptions);

Magyarázat:
Két akciót futtat egymás után ("FeketeFehér" és "Élesítés").
Ezután egy szövegréteget ad hozzá, ami pl. vízjelként szolgálhat.

Használat: 
Összetett munkafolyamatok, pl. képek előkészítése nyomtatásra vagy webes használatra.Hogyan hozz létre akciót a Photoshopban?Nyisd meg az Actions panelt (Window > Actions).
Kattints az új akciókészlet gombra (mappa ikon), nevezd el, pl. "SajátAkciók".
Hozz létre egy új akciót a "+" gombbal, adj neki nevet (pl. "FeketeFehér").
Nyomd meg a "Record" gombot, és végezd el a kívánt műveleteket (pl. szűrő alkalmazása, átméretezés).
Állítsd le a felvételt a "Stop" gombbal.
A szkriptben hivatkozz az akciókészlet és az akció nevére.



Tippek és trükkökHibakezelés: 

Mindig ellenőrizd, hogy létezik-e a dokumentum vagy az akció:javascript

try {
    app.doAction("FeketeFehér", "SajátAkciók");
} catch (e) {
    alert("Hiba: Az akció nem található! " + e);
}



Akciók exportálása: Az akciókészletet .atn fájlként mentheted, hogy másokkal megoszd.
Batch mód: A Photoshop beépített File > Automate > Batch funkcióját is kombinálhatod szkriptekkel, de a JavaScripttel nagyobb kontrollod van.
Dinamikus paraméterek: Használj változókat az akciók paramétereinek testreszabására (pl. szöveg tartalma, méretek).
Dokumentáció: Az Adobe Photoshop Scripting Reference (PDF formátumban elérhető az Adobe weboldalán) részletezi az összes elérhető függvényt.


Gyakorlati alkalmazások

Vízjelezés: Akcióval adj hozzá vízjelet, majd szkripttel futtasd több képen.
Tömeges átméretezés és szűrő alkalmazás: Pl. webes képek optimalizálása.
Stílus alkalmazása: Egységes szűrők vagy effektek hozzáadása fotósorozatokhoz.
Exportálás különböző formátumokba: Akcióval készíts elő képeket, majd szkripttel ments különböző formátumokba.













Megjegyzések