3. Отмена действий

Почти все вносимые в изображения изменения могут быть отменены. Вы можете отменить последнее действие, выбрав в меню изображения ПравкаОтменить , но эта операция применяется так часто, что вы стоит комбинацию клавиш Ctrl+Z.

Сама отмена может быть отменена. После отмены действия вы можете вернуть его выбрав в меню изображения пункт ПравкаПовторить , или с использованием клавиши быстрого доступа, Ctrl+Y. Часто это полезно при оценке эффекта какого-либо действия, с помощью его неоднократной отмены и повтора. Обычно это происходит очень быстро, без дополнительного расхода ресурсов или изменения истории отмены, поэтому никакого вреда в этом нет.

[Внимание] Внимание

Если вы отмените одно или несколько действий и затем произведёте какую-либо операцию кроме отмены и возвращения, возможности вернуть те действия больше не будет: они потеряны навсегда. Решением проблемы является дублирование изображения и работа с копией. (При этом не выполняйте пробные операции с оригиналом, поскольку история действий при дублировании не копируется.)

Если вы часто используете отмену и возврат на множество шагов за раз, возможно будет более удобно работать с диалогом Истории отмен - прикрепляемой панелью, которая показывает небольшие эскизы каждой точки в истории отмены, позволяя вам перемещаться назад или вперёд к точке, по которой вы щёлкаете.

Для каждого изображения сохраняется своя история действий. «История действий» является одним из компонентов изображения. С этой целью GIMP выделяет определённое количество памяти на каждое изображение. Вы можете увеличить или уменьшить количество используемой памяти на вкладке Окружение в диалоге настройки программы. Здесь расположены две важные переменные: Минимальное число уровней отмены, которые поддерживаются невзирая на количество потребляемой памяти, и Максимально памяти для отмены, израсходовав которую GIMP начнёт удалять наиболее старые элементы из истории действий.

[Примечание] Примечание

Хотя история действий является компонентом изображения, она не сохраняется вместе с ним в собственный формат 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 Environment page of the Preferences dialog; if you do, you are assuming responsibility for thinking about what you are doing.)

Возвращение изображения

«Reverting» means reloading the image from the file. GIMP actually implements this by closing the image and creating a new image, so the Undo History is lost as a consequence. Because of this, if the image is unclean, GIMP asks you to confirm that you really want to revert the image.

Фрагменты действий

Некоторые инструменты требуют выполнения комплексного набора манипуляций перед их применением, но позволяют отменить лишь целые операции вместо отдельных элементов. Например, Ножницы позволяют вам создавать закрытые контуры щелчками по различным точкам изображения с последующим щелчком внутри контура для создания выделения. Вы не можете отменить отдельные щелчки: отмена после завершения вернет вас к начальной точке. В другом примере, когда вы работаете с инструментом Текст, вы не можете отменить отдельные буквы, смену шрифта и т.д.: отмена после завершения операций удалит только что созданный текстовый слой.

Filters, and other actions performed by plugins or scripts, can be undone just like actions implemented by the GIMP core, but this requires them to make correct use of GIMP's Undo functions. If the code is not correct, a plugin can potentially corrupt the Undo History, so that not only the plugin but also previous actions can no longer properly be undone. The plugins and scripts distributed with GIMP are all believed to be set up correctly, but obviously no guarantees can be given for plugins you obtain from other sources. Also, even if the code is correct, canceling a plugin while it is running may corrupt the Undo History, so it is best to avoid this unless you have accidentally done something whose consequences are going to be very harmful.