4

我正在尝试在 Photoshop 中制作一个脚本,该脚本将修改某些图层并将它们导出为 PNG 图像。我从另一个地方复制了以下代码:

function SavePNG(saveFile){
    var pngOpts = new ExportOptionsSaveForWeb; 
    pngOpts.format = SaveDocumentType.PNG
    pngOpts.PNG8 = false; 
    pngOpts.transparency = true; 
    pngOpts.interlaced = true; 
    pngOpts.quality = 100;
    activeDocument.exportDocument(saveFile,ExportType.SAVEFORWEB,pngOpts);
}

该函数将photoshop的活动文档导出到saveFile参数指定的文件中。

它适用于“C:\images\result.png”等简单路径,但是当尝试使用“~/Desktop/”等不同路径或带有一些特殊字符的路径时,文件不会导出,并且“目标文件夹不会”存在”错误信息。

知道如何解决吗?

4

3 回答 3

8

好吧,我不确定为什么会发生这种情况,但您可以尝试以下修改:

function SavePNG(saveFile){
    var tmpFile = "./tmp.png";
    tmpFile = new File(tmpFile);
    var pngOpts = new ExportOptionsSaveForWeb; 
    pngOpts.format = SaveDocumentType.PNG
    pngOpts.PNG8 = false; 
    pngOpts.transparency = true; 
    pngOpts.interlaced = true; 
    pngOpts.quality = 100;
    activeDocument.exportDocument(tmpFile,ExportType.SAVEFORWEB,pngOpts); 
    tmpFile.rename (saveFile);
    tmpFile.changePath(saveFile);
}

它将文件导出到临时文件中,然后重命名并将其移动到请求的路径,应该可以解决路径问题。

于 2011-01-03T17:50:11.967 回答
1

exportDocument 需要完整的文件名,而不是文件夹路径。

这有效:

activeDocument.exportDocument(new File("~/foo/foo.png"), ExportType.SAVEFORWEB, pngOpts);

这不起作用并给出“目标文件夹不存在”错误消息:

activeDocument.exportDocument(new File("~/foo/"), ExportType.SAVEFORWEB, pngOpts);
于 2012-11-21T00:39:28.407 回答
0

对于有此错误且未使用 photoshop-script.

该错误可能未绑定到目标文件夹,但由于用于导出步骤的文件夹已被删除而发生。所以要么

  • 重新创建在录制期间使用的文件夹,或
  • 重新创建导出步骤
于 2014-10-22T07:44:07.270 回答