# GIMP

GIMP (AFI:; GNU Image Manipulation Program) è un software libero multipiattaforma per l'elaborazione digitale delle immagini.
Fra i vari usi possibili vi sono fotoritocco, fotomontaggio, conversioni tra molteplici formati di file, animazioni (ad esempio in formato GIF), e processamento in batch in linea. GIMP è compatibile anche con il formato proprietario PSD di Adobe Photoshop.
Il progetto è iniziato nel 1995 da Spencer Kimball e Peter Mattis ed è mantenuto da volontari. Il logo è la mascotte Wilber, un coyote.

## Storia

I creatori di GIMP (GNU Image Manipulation Program), Spencer Kimball e Peter Mattis svilupparono inizialmente il progetto come tesina semestrale per un corso per l'Università della California, Berkeley nel 1995. Erano entrambi membri del Computing Facility, associazione studentesca a Berkeley.
Nel 1997, dopo la loro laurea, cambiarono il nome in GNU Image Manipulation Program ed entrarono ufficialmente nel Progetto GNU. La versione 1 fu pubblicata nel giugno del 1998 mentre la versione 2 nel marzo del 2004.

## Caratteristiche

Gli strumenti di manipolazione di GIMP possono essere raggiunti con Barre degli Strumenti, tramite menù o con finestre di dialogo (che possono essere raggruppate in pannelli). Questi strumenti includono filtri, pennelli oltre a trasformazioni, selezione, livelli di immagine e strumenti per creare maschere.
Ad esempio GIMP possiede 48 pennelli classici a cui ne possono essere aggiunti altri. Questi pennelli possono avere il bordo morbido (con antialiasing) o rigido (con aliasing), o usati in sottrazione di colore o con diverse opacità, o ancora con molti altri metodi di composizione.

### Spazi colore supportati

GIMP può usare come tavolozza dei colori il modello RGB, HSV, la ruota dei colori oppure il modello CMYK. Può mischiare questi modelli ed ha strumenti per la selezione del colore con molte opzioni (come ad esempio l'utilizzo dei codici esadecimali dei colori, come usato nei CSS ed HTML). Bisogna notare che il modello CMYK è solo simulato: viene immediatamente tradotto in RGB in memoria. GIMP non ha ancora un supporto per quelle combinazioni CMYK che non possono essere rappresentate come RGB, come i neri saturi, che possono però essere estesi (limitatamente) con plugin aggiuntivi.
GIMP supporta i gradienti di colore che può essere integrato in altri strumenti, come riempimenti e pennelli, per avere aree coperte con fusione automatica dei colori. Include molti gradienti già pronti all'utilizzo e permette l'inserimento o la modifica degli stessi.

### Strumenti di Selezione e Maschere

Si possono eseguire selezioni circolari o rettangolari, a mano libera, per colore o, alternativamente, con lo strumento "Selezione Intelligente" (la bacchetta magica di alternative commerciali), si possono selezionare regioni uniformi di colore. Le forbici intelligenti possono essere usate per creare automaticamente percorsi (path) tra regioni a forte contrasto.
GIMP usa i livelli (anche trasparenti) che possono essere mostrati, nascosti, opacizzati e variamente modificati. Supporta anche immagini trasparenti o semi-trasparenti. Con i canali si possono modificare un singolo spazio colore di un'immagine (per esempio modificare solo i toni rossi di una immagine RGB senza toccare le altre componenti).

### Tracciati

I tracciati contengono segmenti o curve di Bézier e possono essere creati con uno strumento apposito. Oltre a poter essere nominati, salvati e colorati (o dipinti) con pennelli o motivi o stili diversi di linee, i tracciati possono essere usati per effettuare selezioni complesse.

### Effetti, filtri e script

GIMP possiede circa 150 effetti standard e filtri, incluso ombreggiatura (drop shadow), sfocatura, effetto mosso e disturbo (rumore digitale).
Il programma supporta anche script in vari linguaggi: Gimp-fu (linguaggio Scheme integrato) o esternamente Perl, Python o Tcl. È allo studio l'integrazione di Ruby. Questi linguaggi permettono di scrivere script o plugin che possono essere eseguiti interattivamente. È possibile creare immagini in modo completamente non interattivo, come per esempio generare immagini per pagine web al volo attraverso programmi che usino l'interfaccia CGI o la modifica sequenziale del colore e la dimensione di un gran numero di immagini. Per questi compiti non interattivi, programmi come ImageMagick sono però di gran lunga più semplici da utilizzare.

## Sviluppo

GIMP è sviluppato principalmente da volontari, come progetto di software libero nell'ambito del progetto GNU. Usa un ramo instabile (di sviluppo) per aggiungere nuove caratteristiche e un ramo stabile per correggere bug tra le varie versioni. Come tanti altri software open source usa un numero pari per indicare le versioni stabili (per esempio 2.8.x) ed un numero dispari per le versioni instabili (ultimamente 2.9.x).
Tra la versione 1.2 e 2.2 ci sono stati molti cambiamenti nell'interfaccia, oltre all'introduzione di pennelli multipli che al tempo venivano usati solo da Photoshop. Tra la versione 2.2 e la 2.4 sono state introdotte molte migliorie significative, come la gestione digitale dei colori, pennelli scalabili, nuovi strumenti di selezione e un miglioramento dell'interfaccia utente.
Nella versione 2.6 c'è stato un completo ripensamento, e conseguente ristrutturazione, dell'interfaccia utente (seguendo un percorso cominciato con la versione 2.4) introducendo un gruppo di lavoro dedicato esclusivamente allo sviluppo dell'interfaccia utente, oltre all'introduzione e parziale integrazione della nuova libreria grafica Generic Graphical Library (GEGL), nata per risolvere alcune importanti limitazioni, come l'impossibilità di usare nativamente colori CMYK e la gestione di piani di colore di profondità maggiore di 8 bit, introducendo al contempo una potentissima funzione di modifica dell'immagine non distruttiva, che sarà attiva solo una volta completata l'integrazione della libreria, probabilmente per la versione 3.0 di GIMP.
L'implementazione dell'integrazione della libreria GEGL è slittata dal 2000 fino all'ottobre del 2006, data in cui Øyvind Kolås ha dato dimostrazione di una libreria GEGL parziale con la interfaccia grafica, sviluppata da Sven Neumann, Michael Natterer e Kolås.
L'interfaccia di GIMP è stata costruita usando GTK+ (the GIMP Toolkit), originariamente scritta appunto per questo programma. Con il tempo la libreria GTK+ è stata usata, data la sua bontà, per creare il desktop environment GNOME. Questa libreria altro non è che il rimpiazzo open source di una libreria commerciale, Motif, usata nei primi tempi con GIMP.

### Libre Graphics Meeting

Il Libre Graphics Meeting (LGM) è l'evento annuale in cui gli sviluppatori di GIMP e altri progetti si incontrano per discutere questioni relative ai software di grafica liberi e open source.

### Versioni

| Versione | Data di distribuzione | Ultima versione minore |
| Vecchia versione non più supportata: 0.x | 21 novembre 1995 | ? |
| Vecchia versione non più supportata: 0.54 | 31 gennaio 1996 | 0.99.31 |
| Vecchia versione non più supportata: 1.0 | 5 giugno 1998 | 1.0.3 |
| Vecchia versione non più supportata: 1.2 | 25 dicembre 2000 | 1.2.5 |
| GIMP 2.x ||||
| Vecchia versione non più supportata: 2.0 | 23 marzo 2004 | 2.0.6 |
| Vecchia versione non più supportata: 2.2 | 19 dicembre 2004 | 2.2.17 |
| Vecchia versione non più supportata: 2.4 | 24 ottobre 2007 | 2.4.7 |
| Vecchia versione non più supportata: 2.6 | 1º ottobre 2008 | 2.6.12 |
| Vecchia versione non più supportata: 2.8 | 3 maggio 2012 | 2.8.22 |
| Vecchia versione non più supportata: 2.9 | 27 novembre 2015 | 2.9.8 |
| Versione stabile corrente: 2.10 | 14 ottobre 2018 | 2.10.38 |
| GIMP 3.x ||||
| Ultima anteprima di una versione futura: 3.0 | TBA | 3.0 RC3 |
| Versione futura: 3.2 | TBA | |
| Legenda:Vecchia versioneVersione precedente ancora supportataVersione correnteUltima versione di anteprimaVersione futura ||||

## Interfaccia ed usabilità

L'interfaccia classica di GIMP, prima dell'arrivo della versione 2.8, seguiva un paradigma a finestre multiple per i vari documenti e strumenti; ciò differisce da molte altre applicazioni grafiche commerciali, che utilizzano il modello inverso: una sola finestra con all'interno tutti gli strumenti e varie sotto-finestre per ogni documento aperto. Il modello usato da GIMP è flessibile, permettendo di avere finestre non costrette a contenitori più grandi, ma ha lo svantaggio di essere complicato da usare con sistemi operativi, come Microsoft Windows, che non hanno desktop virtuali o un efficiente window manager. Infatti gli sviluppatori di GTK+, il toolkit usato da GIMP, hanno sempre denigrato l'uso del modello MDI per lo sviluppo di applicazioni.
GIMP è spesso stato criticato per problemi di usabilità, anche se nelle ultime versioni l'interfaccia è stata semplificata e migliorata.
Dalla versione 2.8 è possibile scegliere se usare la modalità finestra singola o quella a finestre multiple.
Una speciale edizione, chiamata Instrumented GIMP, è infatti stata creata dell'Università di Waterloo per tracciare l'utilizzo del programma e generare linee guida per future migliorie nell'interfaccia.

## Distribuzione

Il programma è disponibile per molteplici sistemi operativi e architetture di computer. Esistono anche molti progetti derivati. Sul sito ufficiale sono disponibili oltre ai codici sorgenti anche molti binari (file eseguibili) per svariati sistemi operativi.
GIMP viene anche incluso in molte distribuzioni Linux come editor d'immagini standard. Bisogna ricordare in particolare le distro Debian GNU/Linux, Fedora, Mandriva Linux, OpenSUSE e Ubuntu.
Il porting su sistemi Microsoft Windows esiste dal 1997 per opera di un programmatore finlandese, Tor "tml" Lillqvist.

### Progetti derivati

GIMP, essendo open source, ha avuto molti fork e vari porting nel tempo:

#### Porting per Mac OS X

* Gimp.app è il porting su Mac OS X più completo di GIMP.
* OSX-GIMP è un porting su Mac OS X usando Quartz, ha molte funzionalità ma è ancora considerato una versione beta, sperimentale.
* Seashore è un programma per Mac basato su GIMP che usa l'interfaccia nativa Cocoa in macOS. È ancora in versione beta (0.1.9) e manca di molti filtri standard.

#### GIMPshop

GIMPshop è una modificazione di GIMP che dispone gli elementi dell'interfaccia per assomigliare ad Adobe Photoshop, inclusa l'interfaccia a documenti multipli, funzioni rinominate e menù riorganizzati, multipiattaforma. Basato su GIMP 2.2

#### GimPhoto e GimPad

GIMPhoto è una versione modificata di GIMP che dispone gli elementi dell'interfaccia per assomigliare ad Adobe Photoshop, inclusa l'interfaccia a documenti multipli, funzioni rinominate e menù riorganizzati, multipiattaforma. Basato su GIMP 2.4.3

#### CinePaint

CinePaint, prima conosciuto come Film Gimp, è un fork di GIMP 1.0.4 ed è uno strumento disegnato specificatamente per la modifica e il ritocco di film in ambito professionale grazie ad un frame manager. Fornisce inoltre anche una profondità di colore di GIMP di 32 bit per canale e fornisce un supporto per il management del colore ed HDR.
È stato usato in diversi film, tra cui Harry Potter e la pietra filosofale, il dottor Dolittle 2, Grinch, Stuart Little e Stuart Little 2, il pianeta delle scimmie.

## Mascotte

La mascotte ufficiale di GIMP, Wilber, è stata creata da Tuomas Kuosmanen (tigert) a un certo punto prima del 25 settembre 1997; da allora, Wilber ha ricevuto ritocchi supplementari da altri sviluppatori di GIMP. Accessori per Wilber si trovano nel Wilber construction kit, incluso nel codice sorgente di GIMP.

## Comparazione (e compatibilità) con Adobe Photoshop

GIMP è spesso descritto come un'alternativa al prodotto commerciale Adobe Photoshop, un paragone che scatena sul web accesi dibattiti.
Ci sono importanti differenze tra i due pacchetti:
* Le due applicazioni differiscono nella gestione dei colori: Photoshop supporta immagini a 16 bit, 32 bit e a virgola mobile, gli spazi colore Pantone, CMYK e CIE XYZ. GIMP supporta invece solo in parte lo spazio CMYK, con un plugin aggiuntivo limitato, mentre non può supportare, per motivi legali, lo spazio colore commerciale Pantone.
* GIMP necessita di una minima conoscenza di programmazione per implementare gli script Python-Fu o Script-Fu, mentre Photoshop consente di programmare macro (azioni automatizzate) e ripeterle con un tasto play (va detto che questo meccanismo è meno flessibile degli script).
* Photoshop non è compatibile con i plugin e gli script per GIMP, mentre quest'ultimo offre la possibilità di usare plugin progettati per Photoshop, come i filtri 8BF, benché in maniera limitata appoggiandosi al plugin PSPI.
* Photoshop non supporta il formato nativo di GIMP (XCF), mentre GIMP può leggere e scrivere il formato nativo di Photoshop se con metodo di colore CMYK (PSD).
* Photoshop dispone di alcune funzionalità non implementate in GIMP, come il supporto nativo per i livelli di correzione colore (Adjustment layers, livelli che agiscono da filtri).
* Il modello di sviluppo open source di GIMP comporta una maggiore velocità di implementazione e costi nulli su più sistemi operativi.

## Formati supportati

GIMP supporta l'importazione e l'esportazione di un gran numero di formati di file differenti, mentre l'XCF, ne rappresenta il formato nativo, utilizzato per immagazzinare i dati relativi all'immagine.
    Formati dei file Importati ed esportati GIMP dispone di supporto per importare ed esportare formati d'immagine come BMP, JPEG, PNG, GIF, TIFF, WebP e HEIF, AVIF, insieme ai formati di file di svariate altre applicazioni, come le animazioni flic della Autodesk, le immagini di Paint Shop Pro e documenti di Photoshop. È dotato di supporto per documenti PostScript, bitmap X e Zsoft PCX. GIMP può elaborare anche i dati della path da file SVG, come pure i files ICO, delle immagini per le icone adottate da Windows. Importati GIMP può importare documenti PDF Adobe ed il formato Raw, impiegato da molte fotocamere digitali, ma non può salvare in questi formati. Un plug-in, UFRaw, open source vi aggiunge piena compatibilità, e sembra essere più veloce di Adobe, aggiornandosi ai nuovi modelli di fotocamera. Esportati GIMP può esportare file d'immagine MNG (nella versione GNU/Linux) ed HTML, files codice sorgente C ed, usando un apposito plug-in, ASCII art.