3

画像のサイズを変更して保存する Photoshop JavaScript を実行したいのですが、最後にドキュメントを元の状態に復元したいと考えています。

Photoshop では、履歴ペインをマークバックして、最後のコマンドを取り消します。
スクリプトでどのようにすればよいですか?
あるいは、文書を元の状態に戻す最善の方法は何ですか?

ドキュメントが元々保存されていると仮定しないでください。作業中のドキュメントである可能性があります。

4

4 に答える 4

8

アクティブな履歴状態を保存します。

var savedState = app.activeDocument.activeHistoryState

次に、あなたがしていることをすべて終えたら:

app.activeDocument.activeHistoryState = savedState
于 2015-09-30T20:23:00.340 に答える
5

ScriptListener プラグインからイメージを元に戻す:

var idRvrt = charIDToTypeID( "Rvrt" );
executeAction( idRvrt, undefined, DialogModes.NO );
于 2013-11-13T06:38:50.360 に答える
5

私は履歴状態のアプローチを避けています。常にうまく機能するとは限りません。代わりに、一時的な変更を行いたい場合は、ドキュメントを複製して作業します。決して失敗しません。

于 2013-11-14T15:53:37.023 に答える
4

答えは次のとおりです。

  1. 開始する前に最後の履歴コマンドを保存してください:
    historyStates リストには「元に戻す」履歴コマンドも含まれており、グレー表示されているため、これはトリッキーで、常に機能するとは限りません。ただし、最後のコマンドがすべてグレー表示されていないと仮定しましょう。

    history = doc.historyStates.length - 1;
    
  2. 終了したら、履歴の状態を復元します。

    doc.activeHistoryState = doc.historyStates[history];
    
  3. スクリプトが生成したすべてのコマンドを履歴から削除します。

    app.purge (PurgeTarget.HISTORYCACHES);
    

#3をスキップできます。その場合、スクリプトで実行したコマンドは履歴リストに残り、グレー表示されます(スクリプトを繰り返すと、最後の実際のコマンドではなく、前のスクリプトの最後のコマンドが復元されます走る)。
または、この問題を回避するために、手順 1 の前に履歴のグレー表示されたコマンドを削除することもできます。

于 2013-03-10T14:32:39.807 に答える