3. 取り消し

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

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

[注意] 注意

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

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

Undo is performed on an image-specific basis: the "Undo History" is one of the components of an image. GIMP allocates a certain amount of memory to each image for this purpose. You can customize your Preferences to increase or decrease the amount, using the System Resources page of the Preferences dialog. There are two important variables: the minimal number of undo levels, which GIMP will maintain regardless of how much memory they consume, and the maximum undo memory, beyond which GIMP will begin to delete the oldest items from the Undo History.

[注記] 注記

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

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

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

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

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

画像を閉じること

The Undo History is a component of the image, so when the image is closed and all of its resources are freed, the Undo History is gone. Because of this, unless the image has not been modified since the last time it was saved, GIMP always asks you to confirm that you really want to close the image. (You can disable this in the System Resources page of the Preferences dialog; if you do, you are assuming responsibility for thinking about what you are doing.)

画像の復帰

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

操作の細分

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

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