我想运行一个调整大小并保存图像的photoshop javascript,但最后我希望将文档恢复到原始状态。
在Photoshop中我只会标记历史记录窗格,撤消上一个命令 我该如何在剧本中做到这一点? 或者,或者,将文档恢复到原始状态的最佳方法是什么?
不要认为文档最初是保存的,它可能是正在编写的文档。
答案 0 :(得分:5)
我避免采用历史状态方法 - 我发现它并不总是运作良好。相反,如果我想进行临时更改,我会复制文档并对其进行处理。永远不会失败。
答案 1 :(得分:5)
保存活动历史记录状态:
var savedState = app.activeDocument.activeHistoryState
然后当你完成了你正在做的事情时:
app.activeDocument.activeHistoryState = savedState
答案 2 :(得分:4)
答案是:
在开始之前保存上一个历史命令:
这很棘手,可能并不总是有效,因为historyStates列表还包括历史命令,你可以撤消"并且是灰色的。但是,让我们假设所有最后一个命令都不是灰色的。
history = doc.historyStates.length - 1;
完成后恢复历史记录状态:
doc.activeHistoryState = doc.historyStates[history];
从历史记录中删除脚本生成的所有命令:
app.purge (PurgeTarget.HISTORYCACHES);
您可以跳过#3,在这种情况下,您在脚本上执行的命令将保留在历史记录列表中,并显示为灰色(如果您重复该脚本,最终将无法恢复上一个实际命令,但最后一个命令是上一个脚本运行。) 或者,为避免此问题,您还可以在步骤#1之前清除历史灰色命令。
答案 3 :(得分:3)
从ScriptListener插件恢复图像:
var idRvrt = charIDToTypeID( "Rvrt" );
executeAction( idRvrt, undefined, DialogModes.NO );