使用 Photoshop 脚本保存 png 不起作用
Posted
技术标签:
【中文标题】使用 Photoshop 脚本保存 png 不起作用【英文标题】:Saving a png with photoshop script not working 【发布时间】:2012-08-30 11:41:29 【问题描述】: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);
每当我运行上面的脚本时,它不会将文件保存为 1.png、2.png、3.png 等,它会打开保存对话框并提示我输入文件名并单击保存。我做错了什么?
【问题讨论】:
【参考方案1】:在为 Photoshop 编写脚本时,显然保存 PNG 与保存 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 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);
【讨论】:
这对我有用——尽管自从将我的实现更改为您提供的实现后,我看到的最显着的不同是 PNG 的保存(导出)需要很长时间。我想我必须忍受的东西。【参考方案2】:如果我为 Photoshop 提供这样的保存路径,使用 PNGSaveOptions
保存对我有用:
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);
【讨论】:
我可以确认使用PNGSaveOptions
对 PNG 文件效果很好。它保存整个文件。【参考方案3】:
在开头输入这个
app.displayDialogs = DialogModes.NO;
而且你不会再看到对话框了。
【讨论】:
app.displayDialogs = DialogModes.NO;
隐藏对话框,但脚本执行会在对话框显示时停止以上是关于使用 Photoshop 脚本保存 png 不起作用的主要内容,如果未能解决你的问题,请参考以下文章