我想運行一個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