[FIXED] Wie konzentriere ich mich ein weiteres Dokument mit Photoshop Javascript Scripting?

Ausgabe

Dieses folgende Skript macht fast das, was ich brauche. Was ich versuche, ist, die geöffneten Dokumente, 139 davon, durchzugehen und sie als JPEG zu speichern. Was jedoch fehlt, ist das Verschieben von einem geöffneten Dokument zum anderen, sodass dasselbe Bild über 139 Mal gespeichert wurde. Ich nahm an , dass ich doc.close()das geöffnete Dokument schließen und einen neuen Fokus geben würde, aber das tut es nicht.

Hier ist der Code:

var destination = "C:/Documents and Settings/Administrator/My Documents/small images"
for(var i = 0; i < 5; i++)
{
    doc = documents[i];
    name_ = doc.name.substring(0, doc.name.indexOf('.'))
    saveForWebPNG(destination, name_);
    doc.close();
}

function saveForWebPNG(outputFolderStr, filename)
{
    var opts, file;
    opts = new ExportOptionsSaveForWeb();
    opts.format = SaveDocumentType.JPEG;
    opts.quality = 60;
    if (filename.length > 27) {
        file = new File(outputFolderStr + "/temp.jpg");
        activeDocument.exportDocument(file, ExportType.SAVEFORWEB, opts);
        file.rename(filename + ".jpg");
    }
    else {
        file = new File(outputFolderStr + "/" + filename + ".jpg");
        activeDocument.exportDocument(file, ExportType.SAVEFORWEB, opts);
    }
}

Lösung

Laut dem Adobe Photoshop CS2 JavaScript Scripting Guide müssen Sie die Eigenschaft zuweisen, Application.activeDocumentum dieses Dokument zum aktuell ausgewählten für alle Aktionen zu machen. Dies ist sinnvoll, da Sie diese Eigenschaft in der saveForWebPNGFunktion verwenden, ohne das Dokument explizit im Iterator im ersten Block zu aktivieren. Es könnte so einfach sein wie die folgende Änderung:

for (var i = 0; i < 5; i++) {
  var doc = documents[i];
  app.activeDocument = doc; // Select that document.
  var name = doc.name.substring(0, doc.name.indexOf('.'))
  saveForWebPNG(destination, name);
  doc.close();
}

Ich habe jedoch keine Kopie von Photoshop und habe diese Lösung nicht überprüft.


Beantwortet von –
maerics


Antwort geprüft von –
Mary Flores (FixError Volunteer)

0 Shares:
Leave a Reply

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

You May Also Like