Javascript 使用photoshop脚本保存png不起作用 if(app.documents.length!=0){ var doc=app.activeDocument; 对于(i=0;i

Javascript 使用photoshop脚本保存png不起作用 if(app.documents.length!=0){ var doc=app.activeDocument; 对于(i=0;i,javascript,photoshop-script,Javascript,Photoshop Script,每当我运行上面的脚本时,它都会打开“保存”对话框,提示我输入文件名并单击“保存”,而不是将文件保存为1.png、2.png、3.png等。我做错了什么?单独保存PNG与为photoshop编写脚本时保存JPEG非常不同。以下内容适用于PNG: if (app.documents.length != 0) { var doc= app.activeDocument; for (i = 0; i < 5; i++) { var layer = doc.artL

每当我运行上面的脚本时,它都会打开“保存”对话框,提示我输入文件名并单击“保存”,而不是将文件保存为1.png、2.png、3.png等。我做错了什么?

单独保存PNG与为photoshop编写脚本时保存JPEG非常不同。以下内容适用于PNG:

if (app.documents.length != 0) {
    var doc= app.activeDocument;

    for (i = 0; i < 5; i++) {
        var layer = doc.artLayers[0]
        layer.textItem.contents = i;

        var pngFile    = new File("/Users/dlokshin/temp/" + i + ".png");
        pngSaveOptions = new PNGSaveOptions();
        pngSaveOptions.interlaced = false;
        doc.saveAs(pngFile, pngSaveOptions, true, Extension.LOWERCASE);
    }
}
if(app.documents.length!=0){
var doc=app.activeDocument;
对于(i=0;i<5;i++){
var layer=doc.artLayers[0]
layer.textItem.contents=i;
var选项,文件;
opts=新的导出选项saveforweb();
opts.format=SaveDocumentType.PNG;
opts.PNG8=假;
opts.quality=100;
pngFile=新文件(“/Users/dlokshin/temp/speed.png”);
app.activeDocument.exportDocument(pngFile,ExportType.SAVEFORWEB,opts);
}
}

如果我为Photoshop提供如下保存路径,则使用
PNGSaveOptions保存对我有效:

if (app.documents.length != 0) {
    var doc= app.activeDocument;

    for (i = 0; i < 5; i++) {
        var layer = doc.artLayers[0]
        layer.textItem.contents = i;

        var opts, file;
        opts = new ExportOptionsSaveForWeb();
        opts.format = SaveDocumentType.PNG;
        opts.PNG8 = false;
        opts.quality = 100;

        pngFile = new File("/Users/dlokshin/temp/speed.png");
        app.activeDocument.exportDocument(pngFile, ExportType.SAVEFORWEB, opts);
    }
}

只需在开头键入这个

var doc = app.activeDocument;  
var filePath = activeDocument.fullName.path;  
var pngFile = File(filePath + "/" + "myname.png");
pngSaveOptions = new PNGSaveOptions();
doc.saveAs(pngFile, pngSaveOptions, true, Extension.LOWERCASE);

您将不再获得对话框。

这对我来说很有效-尽管自从将我的实现更改为您提供的实现以来,我所看到的最显著的区别是PNG的保存(导出)需要很长时间。我想这是我不得不忍受的东西。
app.displayDialogs=DialogModes.NO
隐藏对话框,但是当对话框显示时脚本执行就会停止。我可以确认使用
PNGSaveOptions
对PNG文件很有效。它保存整个文件。
app.displayDialogs = DialogModes.NO;