3. 撤销

几乎您对GIMP中的图像所做的任何事情都可以撤消。您可以通过从图像菜单中选择编辑撤销来撤消最近的操作 ,但这种操作非常频繁,您确实应该记住键盘快捷键,Ctrl+Z

撤消本身可以被撤消。撤消操作后,您可以通过从图像菜单中选择编辑重做,或使用键盘快捷键Ctrl+Y重做。通过反复撤消和重做来判断动作的效果通常很有帮助。这通常非常快,并且不会消耗任何额外资源或更改撤消历史,因此永远不会有任何伤害。

[小心] 小心

如果您撤消一个或多个操作,然后以除使用撤消或重做以外的任何方式对图像进行操作,则将无法再重做这些操作:它们将永远丢失。如果它给您带来问题,解决方案是复制图像,然后在副本上进行测试。(别测试原图,因为当你复制图像时,不会复制撤销/重做历史。)

如果您经常发现自己一次撤消和重做许多步骤,使用撤消历史对话框可能更方便,这是 一个可停靠的对话框,显示撤消历史中每点的小草图,允许您返回或单击前进到该点。

撤消是在特定于图像的基础上执行的:“撤消历史”是图像的组成部分之一。为此,GIMP会为每个图像分配一定数量的内存。您可以使用首选项对话框的系统资源页面自定义你的偏好设置以增加或减少数量。有两个重要的变量:最小撤消级别数,无论它们消耗多少内存,GIMP都将保持该数量;以及最大撤消内存数,超过该数量, GIMP将开始从撤消历史记录中删除最旧的项目。

[注意] 注意

即使撤消历史是图像的一个组成部分,当您使用GIMP的原生 XCF 格式(它保留了所有其他图像属性)保存图像时,它也不会被保存。当图像重新打开时,它会有一个空的撤消历史。

GIMP的撤销实现相当复杂。许多操作只需要很少的撤消内存(例如,更改图层的可见性),因此您可以在它们退出撤消历史记录之前执行较长的操作序列。某些操作(例如更改图层可见性)被压缩,因此连续执行多次这些操作只会在撤消历史记录中生成一个点。但是,还有其他操作可能会消耗大量撤消内存。大多数滤镜是由插件实现的,所以GIMPcore 没有有效的方法来知道发生了什么变化。因此,除非在操作前后记住受影响层的全部内容,否则无法实现撤消。在它们退出撤消历史记录之前,您可能只能执行一些此类操作。

3.1. 不可撤销的操作

大多数更改图像的操作都可以撤消。不改变图像的操作通常无法撤消。例如包括将图像保存到文件、复制图像、将图像的一部分复制到剪贴板等。它还包括影响图像显示而不改变底层图像数据的大多数操作。最重要的例子是缩放。但是,也有例外:可以撤消打开或关闭快速蒙版,即使它不会改变图像数据。

有一些重要的操作会改变图像但无法撤消:

关闭图像

撤消历史是图像的一个组成部分,因此当图像关闭并释放其所有资源时,撤消历史就消失了。因此,除非图像自上次保存后没有被修改,否则GIMP总是会要求您确认是否确实要关闭该图像。

恢复图像

恢复 表示从文件中重新加载图像。GIMP实际上是通过关闭图像并创建新图像来实现的,因此撤消历史会丢失。因此,如果图像不干净,GIMP会要求您确认是否确实要还原图像。

操作的片断

有些工具需要您在它们生效之前执行一系列复杂的操作,但只允许您撤消整个操作而不是单个元素。例如,智能剪刀要求您通过单击图像中的多个点来创建闭合路径,然后在路径内部单击以创建选区。您无法撤消单个点击:完成后撤消会将您带回起点。再例如,当您使用文本工具时,您无法撤消单个字母、字体更改等:完成后撤消会删除新创建的文本层。

滤镜和其他由插件或脚本执行的操作,可以像GIMP核心实现的操作一样撤消,但这需要它们正确使用GIMP的撤消功能。如果代码不正确,插件可能会破坏撤消历史记录,因此不仅插件而且之前的操作都无法再正确撤消。随GIMP分发的插件和脚本都被认为是正确设置的,但显然不能保证您从其他来源获得的插件也是如此。此外,即使代码是正确的,在插件运行时取消,插件也可能会破坏撤消历史,因此最好避免这种情况,除非您不小心做了一些后果将非常有害的事情。