3. Annullamenti

Qualsiasi cosa, o quasi, si possa fare su di un'immagine con GIMP, può essere annullata. Per annullare l'azione più recente selezionare ModificaAnnulla dal menu principale. È un'operazione che viene usata così spesso che si impara molto presto la scorciatoia con la tastiera: Ctrl+Z.

Anche l'annullamento può essere annullato. Dopo aver annullato un'azione è possibile ripeterla scegliendo dal menu principale ModificaRipeti, oppure usando la scorciatoia da tastiera, Ctrl+Y. È spesso utile per giudicare l'effetto di un'operazione ripeterla spesso dopo averla annullata. Normalmente l'operazione è molto veloce e non occupa risorse extra né altera la cronologia degli annullamenti, per cui non c'è nessuna controindicazione.

[Attenzione] Attenzione

Se si annulla una o più azioni e dopodiché si opera sull'immagine in qualsiasi modo eccetto che con Annulla o Ripeti, non sarà più possibile ripetere queste azioni: saranno perse per sempre. La soluzione è la seguente: duplicare l'immagine e poi operare sulla copia (non sull'originale, dato che la cronologia degli annullamenti non viene copiata insieme all'immagine).

Se vi trovate spesso ad annullare e rifare molte operazioni al colpo, potreste considerare di usare invece la finestra di dialogo della cronologia degli annullamenti, una finestra agganciabile che mostra una miniatura di ogni voce della cronologia, consentendo di andare avanti e indietro semplicemente con un colpo di clic del mouse.

L'annullamento viene eseguito su una caratteristica specifica dell'immagine: la "Cronologia degli annullamenti" è un elemento proprio dell'immagine. GIMP infatti riserva a questo scopo un certo ammontare di memoria per ogni immagine la cui quantità è modificabile attraverso la pagina Risorse di sistema della finestra delle preferenze. Le variabili importanti sono: il numero minimo di annullamenti, che GIMP mantiene indipendentemente da quanta memoria occupano, e la massima quantità di memoria annullamenti, oltre la quale GIMP comincerà a cancellare le voci più vecchie della cronologia.

[Nota] Nota

Malgrado il fatto che la cronologia degli annullamenti sia una componente dell'immagine, essa non viene salvata quando si salva un'immagine, anche se si utilizza il formato nativo di GIMP XCF che conserva ogni altra proprietà dell'immagine: quando l'immagine viene riaperta, si ottiene invariabilmente una cronologia vuota.

L'implementazione della cronologia degli annullamenti di GIMP è piuttosto sofisticata. Molte operazioni possono richiedere pochissima memoria (per es. quando si cambia la visibilità di un livello) permettendo l'esecuzione di sequenze molto lunghe di comandi prima che si renda necessaria la cancellazione dei primi dalla cronologia. Molte operazioni (il cambiamento della visibilità di un canale è il solito esempio) vengono compresse, in maniera tale che molte di esse occupino solo un punto nella cronologia. Al contrario, esistono delle operazioni che invece occupano molta memoria. Per esempio molti filtri, dato che essi sono spesso implementati come plugin, GIMP non ha modo di sapere cosa essi abbiano cambiato nell'immagine e quindi non ha altro modo di gestire l'annullamento se non quello di memorizzare l'intero contenuto del livello in oggetto prima dell'operazione. Sarà quindi possibile eseguire solo poche di tali operazioni prima che si superino i limiti della memoria di ripristino.

3.1. Operazioni che non possono essere annullate

Quasi tutte le operazioni sulle immagini sono annullabili mentre le operazioni che non alterano le immagini, generalmente non lo sono. Queste ultime includono il salvataggio di un'immagine, la duplicazione di essa, la copia di parte dell'immagine negli appunti, ecc. Sono incluse anche molte azioni che modificano la visualizzazione dell'immagine senza modificarla. La più importante di esse è lo zoom. Ci sono anche delle eccezioni: la commutazione della maschera veloce può essere annullata anche se non altera l'immagine.

Ci sono poche importanti operazioni che modificano un'immagine ma che non possono essere annullate:

Chiusura dell'immagine

La cronologia degli annullamenti è una componente dell'immagine, per cui quando l'immagine viene chiusa, tutte le risorse che occupava vengono liberate e con esse anche la cronologia che viene persa. Per questa ragione, a meno che l'immagine non sia stata modificata dall'ultimo salvataggio, GIMP chiede sempre di confermare la chiusura dell'immagine.

Ricaricare l'immagine

«Ricaricare» un'immagine significa ricaricarla da file. GIMP esegue questo comando chiudendo l'immagine e creandone una nuova, di conseguenza la cronologia degli annullamenti viene persa. Per questa ragione, se l'immagine è stata modificata, GIMP chiede sempre se si è sicuri di voler ricaricare l'immagine.

«Pezzi» d'azione

Some tools require you to perform a complex series of manipulations before they take effect, but only allow you to undo the whole thing rather than the individual elements. For example, the Scissors Select tool requires you to create a closed path by clicking at multiple points in the image, and then clicking inside the path to create a selection. You cannot undo the individual clicks: undoing after you are finished takes you all the way back to the starting point. For another example, when you are working with the Text tool, you cannot undo individual letters, font changes, etc.: undoing after you are finished removes the newly created text layer.

Filtri e altre azioni eseguite da plugin o script possono essere annullate come qualsiasi altra operazione implementata da GIMP, ma esse necessitano del corretto uso delle funzioni interne di annullamento di GIMP. Se il codice di cui sono costituite non è corretto, un plugin può, ipoteticamente, modificare la cronologia degli annullamenti in maniera tale da impedire l'annullamento dell'ultima e di tutte le altre azioni. Tutti i plugin e gli script distribuiti con GIMP dovrebbero comportarsi correttamente, ma naturalmente non ci sono garanzie per altri che vengono forniti in forma di sorgente. Inoltre, anche se il codice è corretto, la cancellazione di un plugin mentre è in esecuzione può portare ad una alterazione non prevista della cronologia degli annullamenti; perciò è sconsigliabile interrompere tali operazioni a meno che non sia veramente necessario.