[FIXED] Von Photoshop -Aktionen bis hin zu Photoshop -Skripten?

Ausgabe

Ich möchte, dass Photoshop die folgende Aufgabe für einen bestimmten Ordner automatisch ausführt:

  1. Laden Sie alle PNG-Dateien in einen bestimmten Ordner.
  2. Konvertieren Sie den Modus jeder Datei inRGB color
  3. Fügen Sie jeder Datei eine Ebene hinzu
  4. Speichern Sie die Dateien als PSD im selben Ordner

Mir wurde gesagt, dass dies mit Photoshop-Skripting möglich ist, aber ich weiß nicht, wie ich anfangen soll, da ich leider nicht viel Erfahrung mit JavaScript habe.

Eine Sache, die ich weiß, ist, dass ich die obige Aufgabe nicht ausführen kann, Actionsda Photoshop beim Aufzeichnen des letzten Schritts (4) die Aktion zum Speichern der PSD-Dateien in dem Ordner aufzeichnet, den ich beim Aufzeichnen des Makros verwende (anstelle des verwendet, um die ursprünglichen PNG-Dateien zu laden). Mit anderen Worten, es fixiert den Zielordner auf den im Makro verwendeten.

Dies bringt mich zu folgender Frage: Gibt es eine Möglichkeit, den Photoshop-Javascript-Code automatisch zu generieren, der eine bestimmte Aktion ausführt ?

Wenn ja, hätte ich nichts dagegen zu lernen, wie man das Skript ändert, um das obige Ordnerproblem zu beheben.

Lösung

Ich habe ein Skript erstellt, das die erforderliche Aufgabe erfüllt:

#target photoshop
#strict on

runthis();
function runthis()
{
    var path = "/d/PhotoshopScript/Images/";

     var inputFolder = new Folder(path );
    var inputFiles = inputFolder.getFiles("*.png");

    for(index in inputFiles)
    {
        // open the file
        var fileToOpen = new File(inputFiles[index]);
        open(fileToOpen);

        // Change mode to rgb
        activeDocument.changeMode(ChangeMode.RGB);
        // add a new layer
        activeDocument.artLayers.add();

        //save
        var psdOptions = new PhotoshopSaveOptions();
        psdOptions.alphaChannels = true;
        psdOptions.annotations = false;
        psdOptions.embedColorProfile = false;
        psdOptions.layers = true;
        psdOptions.spotColors = false;

        var file = new File(path + GetFileName(String(inputFiles[index])));
        activeDocument.saveAs(file, psdOptions);

        activeDocument.close();

        // dispose
        fileToOpen = null;
        psdOptions = null;
        file  = null;
    }
    // dispose
    inputFolder = null;
    inputFiles = null;

}

function GetFileName(fullPath)
{
    var m = fullPath.match(/(.*)[\/\\]([^\/\\]+)\.\w+$/);
    return m[2];
}

Es kann in vielerlei Hinsicht verbessert werden, aber ich hoffe, es hilft.


Beantwortet von –
jani


Antwort geprüft von –
Cary Denson (FixError Admin)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like