我想运行一个Photoshop的JavaScript尺寸并保存图像,但我想后恢复原始文件的状态,到了最后,以恢复文件到其原始状态。Photoshop中的javascript如何脚本
在Photoshop我只想回到标记历史窗格,撤消上一个命令。
我该如何在脚本中做到这一点?
,或者,什么是文件恢复到原来的状态,最好的方法是什么?
不要以为最初保存文档,它可能是在作品中的文档。
我想运行一个Photoshop的JavaScript尺寸并保存图像,但我想后恢复原始文件的状态,到了最后,以恢复文件到其原始状态。Photoshop中的javascript如何脚本
在Photoshop我只想回到标记历史窗格,撤消上一个命令。
我该如何在脚本中做到这一点?
,或者,什么是文件恢复到原来的状态,最好的方法是什么?
不要以为最初保存文档,它可能是在作品中的文档。
答案是:
保存上一条历史命令,然后再开始:
这是棘手的,可能并不总是有效的,因为historyStates名单也包括历史命令对应的你“撤消”显示为灰色。但是让我们假设所有最后一个命令都不是灰色的。
history = doc.historyStates.length - 1;
恢复,当你完成了历史状态:
doc.activeHistoryState = doc.historyStates[history];
从历史中删除所有的命令生成的脚本:
app.purge (PurgeTarget.HISTORYCACHES);
您可以跳过#3,在这种情况下,您在脚本上执行的命令将保留在历史记录列表中,呈灰色(如果您重复该脚本,最终不会恢复最后的实际命令,而是执行上一个脚本的最后一个命令)。
或者为避免此问题,也可以在步骤#1之前清除历史记录灰色命令。从ScriptListener插件
我避免历史状态的方法 - 我发现它并不总是有效的。相反,如果我想进行临时更改,我将复制该文档并对其进行处理。从未失败。
@ anna-forest你会怎么做?我想'var docCopy = app.activeDocument'只会做一个参考副本而不是深层副本。 – damirstuhec 2015-12-28 17:55:33
VAR docCopy = app.activeDocument.duplicate() – 2015-12-28 19:19:26
保存活动的历史状态:
var savedState = app.activeDocument.activeHistoryState
然后,当你与你所做的一切进行:
app.activeDocument.activeHistoryState = savedState
这工作比'app.activeDocument搞乱更加可靠。历史状态“,其中包括灰色(撤消)状态。 – NateS 2017-09-30 22:16:24
我从来没有脚本的Photoshop,但你可以很容易地复制过的文件API?也许做一个重复的更改,并关闭该储蓄后是最好的方式去 – 2013-03-09 17:25:54
我不知道PS JS如何完成的,但你有'this.naturalHeight' /'this.naturalWidth'(其中'this'指的是'img'元素)? – 2013-03-09 17:26:07