Photoshop javascript如何在脚本后恢复原始文档状态

时间:2013-03-09 17:23:13

标签: javascript photoshop

我想运行一个调整大小并保存图像的photoshop javascript,但最后我希望将文档恢复到原始状态。

在Photoshop中我只会标记历史记录窗格,撤消上一个命令 我该如何在剧本中做到这一点? 或者,或者,将文档恢复到原始状态的最佳方法是什么?

不要认为文档最初是保存的,它可能是正在编写的文档。

4 个答案:

答案 0 :(得分:5)

我避免采用历史状态方法 - 我发现它并不总是运作良好。相反,如果我想进行临时更改,我会复制文档并对其进行处理。永远不会失败。

答案 1 :(得分:5)

保存活动历史记录状态:

var savedState = app.activeDocument.activeHistoryState

然后当你完成了你正在做的事情时:

app.activeDocument.activeHistoryState = savedState

答案 2 :(得分:4)

答案是:

  1. 在开始之前保存上一个历史命令:
    这很棘手,可能并不总是有效,因为historyStates列表还包括历史命令,你可以撤消"并且是灰色的。但是,让我们假设所有最后一个命令都不是灰色的。

    history = doc.historyStates.length - 1;
    
  2. 完成后恢复历史记录状态:

    doc.activeHistoryState = doc.historyStates[history];
    
  3. 从历史记录中删除脚本生成的所有命令:

    app.purge (PurgeTarget.HISTORYCACHES);
    
  4. 您可以跳过#3,在这种情况下,您在脚本上执行的命令将保留在历史记录列表中,并显示为灰色(如果您重复该脚本,最终将无法恢复上一个实际命令,但最后一个命令是上一个脚本运行。) 或者,为避免此问题,您还可以在步骤#1之前清除历史灰色命令。

答案 3 :(得分:3)

从ScriptListener插件恢复图像:

var idRvrt = charIDToTypeID( "Rvrt" );
executeAction( idRvrt, undefined, DialogModes.NO );