第 11 章 To be cleaned up
| 部分 II. 如何成为 GIMP 专家？ |

## 第 11 章 To be cleaned up

## 1. 撤消

几乎可以撤消在 GIMP 中对一个图像所做的任何操作。要撤消最近的操作，选择图像菜单中的 编辑 → 撤消 不过由于经常使用它，有必要记住其快捷键， Ctrl-Z.

撤消本身也能被撤消。在撤消一个动作后，您也能重做它， 选择在图像菜单中的 编辑 → 重做，或使用快捷键, Ctrl-Y。通过反复地撤消和重做一个动作，对判断其 效果常常是非常有用的。这通常是非常快捷，不会耗费任何多余资源，而且也不 会更改撤消历史，因此这样做没有任何坏处。

| 小心
当您撤消一个或多个命令后，又对图像进行了除撤消或重做以外的操作，那么您 就不可能再重做这些操作了：它们永远地丢失了。如果您觉得这样不妥，解决方 法就是先复制图像，然后在其拷贝上进行操作。( 不是 原图像，因为在复制图像时，重做/撤消历史不会被拷贝。)

假如您每次常常重做或撤消很多步，这时也许使用撤消历史对话框更加方便。它是一个显示撤 消历史中各点的概要的可停靠对话框，允许您通过点击来后退或前进到某点。

撤消是基于特定的一个图像操作的：“撤消历史”是一个图像的组成部分。GIMP 要 给每个图像分配一定的内存来达到该目的。您能够定制您的首选项来增加或减少其 数量，在首选项对话框中的环境 页有两个重要的参数：最小撤消次数--不管耗费多 少内存都要保证，和最大撤消内存--超过这个值，GIMP 会 从撤消历史中删除旧的记录。

| 注意
虽然撤消历史是一个图像的组成部分，但是在用 GIMP 的内建 XCF 格式保存图 像时不会保存该信息，而其它的图像属性都将保留。当图像被重新打开时，它的 撤消历史为空。

GIMP 撤消的实现是相当复杂的。只需要很多的撤消内存来保留需要操作(比如改变 一个图层的可见性)，因此在记录被从撤消历史中删除之前，可以保持一个很长的 操作序列。许多操作(再次以改变图层可见性为例)被压缩 了，所以连续多次地执行它们只在撤消历史中产生单独的一个点。尽管如此，还是 有其它的操作可能耗费大量的撤消内存。比如说大部分的滤镜：它们由插件实现， GIMP 核心没有知道它们改变了什么的真正有效方法，因此它就不得不记住操作前 后被影响图层的全部内容。您可能在记录被从撤消历史中删除之前只能执行很少的 这种操作。

### 1.1. 不能被撤消的东西

大部分修改一个图像的动作能被撤消，而那些没有修改图像的动作一般就不能。 这些操作包括保存图像到一个文件，复制图像和拷贝图像部分等。它还包括大部 分影响图像显示但没有修改其图像数据的动作。最重要的例子就是图像比例的缩 放。不过也要例外：虽然切换快速蒙板开启或关闭没有修改图像数据，但它能被 撤消。

下面是一些最重要的动作，它们修改一个图像但不能被撤消：

关闭图像

  撤消历史是图像的组成部分，因此当图像被关闭时，其所有资源都被释放， 撤消历史也一样。正因为这样，GIMP 总是要您确认是否真想关闭图像， 除非在最近一次保存图像后没有被修改。(您能够通过首选项对话框的 环境页来关闭该提示； 您要这样做时请先想清楚。)

恢复图像

  “恢复”表示从文件重新读取图像。GIMP 实际上是通过关闭图像并打开一 个新图像来实现的，因此其撤消历史将丢失。所以，当图像“不干净”时， GIMP 总是要您确认是否真想恢复图像。

动作的“片段”

  一些工具在它们起作用之前要求您做一系列复杂的处理，不过只能撤消全 部而不是单个步凑。比如，智能剪刀要求您通过点击图像中的多个点产生 一个闭合的路径，然后再通过在路径内部点击创建一个选区。您无法撤消 单独的点击：在您完成后撤消将使全部回到起始点。再比如，当使用文字 工具时，您无法撤消单独的文字，改变字体等：完成后撤消会删除新建的 文字图像。

滤镜，和其它由插件或脚本执行的操作能像通过 GIMP 核心实现的动作一样地被 撤消，不过这需要它们正确使用 GIMP 的撤消函数。如果代码不正确，一个插件 有潜在破坏撤消历史的可能，到时不光是该插件而且以前的动作都不能被正确地 撤消。所有由 GIMP 贡献的插件和脚本都可以认为是被正确设置的，而从其它地 方得到的插件就显然没有保证。同时，即使代码正确，在运行一个插件时取消掉 它有时也会破坏撤消历史，所以除非是不小心所做的其结果将非常严重，最好避 免这样做。

2.6. 依赖图像的脚本 |  | 2. GIMP 基本概念