3. 取り消し

GIMPでは画像に対して行なった動作はほとんど何でも取り消せます。 画像ウィンドウのメニューで 編集… を元に戻す (… は最後に行われた動作の具体的な名前) とたどれば一番最近の動作が取り消されます。 しかしこのコマンドはよく使われるので、 かわりにキーボードショートカット Ctrl+Z を覚えておくとよいでしょう。

取り消しを取り消すことも可能です。 ある操作を取り消したあとで、 画像ウィンドウのメニューで 編集やり直す と進むか、 キーボードショートカット Ctrl+Y を押せば やり直す ことができます。 取り消しとやり直しを交互に使えば、 その操作の効果を確かめるのに便利です。 この動作は素早く、 操作履歴を変化させずしかもメモリ消費をさらに増やすことがないので、 損失は一切ありません。

[注意] 注意

これまでの操作をひとつもしくは数手にわたって取り消したあとで、 取り消しややり直しではない何らかの新たな操作を画像に対し行なったときは、 それ以降の操作履歴は白紙に戻され、 やり直すことができなくなります。 それでは困る場合にこの問題に対処する方法は、 その時点の画像の複製をとり、 複製画像の上で試行することです。 (原本で行なっては いけません。 なぜならば画像を複製しても操作履歴までは写し取られないからです。)

幾手もの取り消しあるいはやり直しを頻繁に行なう場合には、 操作履歴ダイアログ を使うと作業がもっと楽になるはずです。 このダイアログでは操作履歴が各時点での画像の小さなスケッチで表わされており、 それを見てクリックするだけで履歴を遡ったり進めたりできます。 ダイアログの合体も可能です。

取り消しのしくみはその基礎を描画に置いています。 つまり、 操作履歴は画像の一部なのです。 この機能のためのメモリを、 GIMPは画像ごとに一定量割り当てています。 扱われるメモリの量は 環境設定 ダイアログの環境のページで調節できます。 特に重要な数量はつぎの2つです。 操作履歴の最小エントリ数 の範囲で記録されたぶんの操作履歴に消費されるメモリ量をGIMPは制限しません。 操作履歴のメモリサイズ を越えるとGIMPは最も古い操作の記録から順に削除してゆきます。

[注記] 注記

操作履歴は画像の一部であると申しあげましたが、 GIMP由来のXCF型式で画像を保存した場合でも、 画像の他の情報は保存されますが操作履歴だけは対象外です。 読み込み直した画像の操作履歴は白紙です。

GIMPの操作履歴のしくみはよく吟味して実装しました。 大多数の操作はそのメモリ消費量が極めて小さくなっており (レイヤーの可視度の変更はその例)、 操作履歴からこぼれ落ちるまでに相当な数の手数を踏めます。 (レイヤーの可視度の変更も含め) ある種の操作は 圧縮 がかけられており、 何度も繰り返し操作しても操作履歴上ではほんのひとかけらにしかなりません。 しかし操作履歴のメモリを多量に消費する操作もあります。 大抵のフィルタ操作はこの例です。 フィルタはプラグインの一種であるためGIMPコアは当然それらの及ぼした影響を知る術を持ちえません。 こうしたことから、 操作を受けたレイヤーの操作前後それぞれの全内容を保存するほかに履歴を録る手段がないためです。 こういった操作については操作履歴からこぼれ落ちるまでに踏める手数はかなり少なくなります。

3.1. 取り消しの効かない操作

画像を変更する操作のほとんどは取り消せます。 それに対し画像の変更を伴わない操作は一般的には取り消せないものです。 画像をファイルに保存したり、 画像の複製をとったり、 画像の一部をクリップボードに写し取ったりするのは後者にあたります。 また画像表示に対する操作のうち、 その画像データを変更しないものもほとんどがこちらに含まれます。 たとえばズーム (表示倍率の変更) 操作がそうです。 ただし例外があって、 クイックマスクの切り替えは画像データを何も変更しませんが、 取り消せます。

画像を変更するにもかかわらず取り消せない重大な操作が僅かに存在します。

画像を閉じること

操作履歴は画像の一部ですが、 画像を閉じたときにそれらは開放され、 失われます。 このため未保存の操作がある画像を閉じるさいに、 GIMPは本当に閉じてよいか必ず確認をとります。 (環境設定 ダイアログの環境ページでこれを止めさせることができます。 ただしそれが何を意味するのか充分認識したうえで行ってください。)

画像の復帰

復帰とは画像をファイルから再読み込みすることをさします。 実際にはGIMPはこの操作を、 画像を閉じてから新たに画像を起こすことで実装しており、 したがって操作履歴は失なわれます。 このような理由から、 画像が手付かずでないならば、 GIMPは本当に画像を復帰してもよいか必ず確認をとります。

操作の細分

ツールによってはその効果を得るまでに一連の手のこんだ操作を要求するものがありますが、 取り消せるのはその全体のみで部分的にはできません。 例えば電脳はさみは閉じたパスを引くよう要請するので、 その通過点を次々と画像上でクリックしたうえでパスの内側をクリックして選択域としなければなりません。 しかしそれらのクリックを個々には取り消せず、 パスを完成させたあとで取り消すと、 振り出しに戻って各点のクリックから始めるしかなくなります。 他の例では、 テキストを貼りつけるとき個々の文字やフォント指定などの過程だけを取り消すことはできません。 テキスト貼り付けの取り消しはそのテキストレイヤーが削除されるだけです。

プラグインやスクリプトが司るフィルタなどの操作は、 その取り消しが他の操作と同様にできるようにGIMPコアを実装してありますが、 一方でGIMPの操作履歴機能を正しく利用することがそれらの操作機能の実装に求められています。 不完全なコードのプラグインは操作履歴を壊すおそれがあり、 そのプラグインの操作のみならずそれまでの他の操作をも正しく取り消せなくなってしまうことすら予想されます。 GIMPの公式配布物のプラグインはすべて正当に組まれていますが、 他所から手に入れられるプラグインは明らかにその保証がないようです。 また、 正しいコードで書かれたプラグインであっても、 プラグインが進行中に中止すると操作履歴が壊れるおそれがありますので、 プラグインを進行しつづけることが余程危険だという状況でない限り、 途中で中止するのは避けたほうがよいでしょう。