darktable page lede image
darktable page lede image

Panoramica

Capitolo 1. Panoramica

darktable è un'applicazione open source per la gestione del flusso di lavoro fotografico e per lo sviluppo raw, un tavolo luminoso e una camera oscura virtuali per fotografi.

Gestisce i negativi digitali in un database e permette di vederli attraverso un tavolo luminoso dotato di zoom. Permette anche di sviluppare immagini raw e di migliorarle.

Funzionalità principali
  • darktable gira su GNU/Linux / GNOME, Mac OS X / macports e Solaris 11 / GNOME.

  • Editing completamente non distruttivo.

  • Tutte le funzioni principali di darktable operano su buffer da 4x32-bit a virgola mobile per pixel per garantire un'elaborazione con la più alta accuratezza e prevenire la scalettatura e i salti di colore.

  • darktable fa ampio uso delle istruzioni Streaming SIMD Extensions 2 (SSE2) della CPU per velocizzare l'elaborazione. Infatti darktable gira soltanto su una CPU che supporti SSE2 oppure su CPU ARM64.

  • Accelerazione GPU attraverso OpenCL (rilevamento e attivazione all'avvio).

  • La maggior parte delle elaborazioni delle immagini sono fatte nello spazio colore CIELab, che è molto più ampio della gamma di display e stampanti moderni e persino della visione umana.

  • Display con gestione colore completa, prove colore (soft proofing) e controllo della gamma. Supporto per l'esportazione nei profili ICC integrati nel programma: sRGB, Adobe RGB, XYZ e RGB lineare.

  • Il modulo Raccolta Immagini permette di eseguire ricerche flessibili nel database, cercare le immagini per etichette, valutazione (stelle), etichette colore e altro ancora. Filtrare e ordinare le proprie raccolte all'interno di una ricerca di base o l'aggiunta di etichette sono strumenti utili nel flusso di lavoro fotografico di ogni giorno.

  • Importa una vasta scelta di formati di immagine standard, raw e ampia gamma dinamica o HDR (es: JPG, CR2, DNG, OpenEXR, PFM, ...).

  • darktable ha un'interfaccia utente a latenza zero zoomabile grazie alla cache software multi-livello.

  • Scatto remoto (tethering).

  • Il potente sistema di esportazione supporta gli album web di Picasa, l'upload di Flickr, il salvataggio su disco, la copia 1:1, gli allegati email e può anche generare una semplice galleria web in html. darktable permette di esportare immagini a bassa gamma dinamica (JPEG, JPEG2000, PNG, TIFF), 16-bit (PPM, TIFF) o ampia gamma dinamica lineare (PFM, EXR).

  • darktable usa sia i file sidecar XMP sia il suo veloce database per salvare i metadati e le impostazioni di elaborazione. Tutti i dati Exif sono letti e scritti tramite libexiv2.

  • darktable comprende circa 60 moduli per la trasformazione delle immagini, che si occupano di ogni aspetto dalle operazioni di base, le modifiche dei valori tonali, la manipolazione del colore, la correzione dei tipici difetti fino agli effetti artistici.

  • Molti moduli di darktable possono essere combinati insieme tramite gli operatori di fusione, per consentire maggiori opzioni di sviluppo.

  • Una potente funzionalità di mascheratura permette di controllare con precisione l'effetto del modulo su diverse parti di un'immagine. Si può disegnare una maschera usando diverse forme oppure definire una maschera parametrica basata sui valori dei vari pixel.

  • La maggior parte dei moduli può essere applicata in istanze multiple. Se usata insieme alla funzione maschera, un'operazione può avere diversi effetti su parti differenti dell'immagine.

  • darktable presenta un semplice modulo di riduzione del rumore molto efficiente e attivabile con «un solo clic», che semplicemente funziona ™. È progettato in modo che l'operazione di riduzione del rumore dipenda soltanto dal tipo di fotocamera e dall'impostazione dell'ISO. Un database di profili contiene i parametri di oltre 200 diffusi modelli di fotocamera.

  • darktable include una versatile interfaccia di script che permette di migliorarne le funzionalità attraverso il linguaggio di script Lua.

  • Le immagini associate a coordinate geografiche possono essere visualizzate su una mappa personalizzabile a vostra scelta. Le coordinate geografiche possono essere assegnate alle immagini sia manualmente trascinandole sulla mappa che automaticamente importando un tracciato GPX.

  • darktable ha una funzione di slideshow integrata che permette di visualizzare la vostra collezione di immagini a tutto schermo.

  • Un versatile modulo di stampa vi permette di inviare le immagini ad una stampante collegata con pieno supporto per la gestione del colore.

1.1. Avvio del programma

darktable comprende due file binari: la variante standard ad interfaccia grafica che si avvia col comando darktable e una variante a linea di comando che si avvia col comando darktable-cli. Inoltre darktable viene fornito con altri binari per compiti specializzati.

1.1.1. Comando darktable

Questo comando avvia darktable con la sua interfaccia grafica e tutte le sue funzionalità; è il modo standard per usare darktable.

darktable accetta i seguenti parametri da linea di comando:

darktable [-d {all,cache,camctl,camsupport,control,dev,
               fswatch,input,lighttable,lua,masks,memory,nan,
               opencl,perf,pwstorage,print,sql}]
          [<input file>|<image folder>]
          [--version]
          [--disable-opencl]
          [--library <library file>]
          [--datadir <data directory>]
          [--moduledir <module directory>]
          [--tmpdir <tmp directory>]
          [--configdir <user config directory>]
          [--cachedir <user cache directory>]
          [--localedir <locale directory>]
          [--luacmd <lua command>]
          [--noiseprofiles <noiseprofiles json file>]
          [--conf <key>=<value>]

Tutti i parametri sono opzionali; nella maggior parte dei casi gli utenti avvieranno darktable senza ulteriori parametri (sarà darktable a scegliere i valori predefiniti più adatti).

-d

Questa opzione abilita l'output di debug nel terminale. Esistono vari sottosistemi di darktable e il debug di ognuno di questi può essere attivato separatamente. Si può usare questa opzione varie volte se si desidera fare il debug di più di un sottosistema.

<file di input>|<cartella immagini>

Si può specificare il nome di un'immagine o di una cartella che contiene immagini. Se si indica un file, darktable apre quel file nella vista camera oscura. Se si indica una cartella, darktable si avvia nella vista Tavolo Luminoso col contenuto di quella cartella come attuale collezione.

--version

Questa opzione permette di visualizzare la versione di darktable in uso, un messaggio di Copyright e altre informazioni utili.

--disable-opencl

Questa opzione impedisce a darktable di inizializzare il sottosistema OpenCL. Usare questa opzione nel caso in cui darktable si blocchi all'avvio a causa di un'implementazione difettosa di OpenCL.

--library <file della libreria>

darktable conserva le informazioni sulle immagini in un database sqlite, per garantire un rapido accesso. La posizione predefinita di questo file è «$HOME/.config/darktable/library.db». Si può indicare una posizione diversa, per esempio nel caso in cui si voglia fare qualche esperimento senza compromettere il file library.db originale. Se il file database non esiste, darktable lo crea. Si può anche specificare «:memory:» come file della libreria e in questo caso il database viene salvato nella memoria di sistema - tutte le modifiche vengono scartate quando si chiude darktable.

All'avvio darktable bloccherà la libreria riservandola all'utente corrente. Questa operazione viene effettuata scrivendo l'identificatore del processo corrente (PID) in un file di lock «<file libreria>.lock» appena dopo la libreria specificata. Nel caso in cui darktable dovesse trovare un file di lock esistente terminerà immediatamente.

--datadir <cartella dei dati>

Questa opzione definisce la directory in cui darktable trova i suoi dati di runtime. La posizione predefinita dipende dall'installazione. I percorsi tipici sono «/opt/darktable/share/darktable/» e «/usr/share/darktable/».

--moduledir <cartella dei moduli>

darktable ha una struttura modulare e organizza i suoi moduli in librerie condivise da caricare al momento dell'esecuzione del programma. Con questa opzione si indica a darktable dove cercare queste librerie condivise. La posizione predefinita dipende dall'installazione. I percorsi tipici sono «/opt/darktable/lib64/darktable/» e «/usr/lib64/darktable/».

--tmpdir <cartella temporanea>

La cartella in cui darktable salva i suoi file temporanei. Se questa opzione non è specificata, darktable usa la cartella predefinita di sistema.

--configdir <cartella di configurazione>

Questa opzione definisce la cartella in cui darktable salva la configurazione specifica dell'utente. Il percorso predefinito è «$HOME/.config/darktable/».

--cachedir <cartella cache>

darktable tiene una memoria cache delle miniature per un'anteprima più rapida e una dei binari OpenCL precompilati per un avvio più veloce. Il percorso predefinito della cache è «$HOME/.cache/darktable/». Possono esistere molteplici cache delle miniature in parallelo, una per ogni database delle miniature.

--localedir <cartella localizzazione>

La cartella in cui darktable trova le traduzioni di ogni lingua. La posizione predefinita dipende dall'installazione. I percorsi tipici sono «/opt/darktable/share/locale/» e «/usr/share/locale/»

--luacmd <comando Lua>

Una stringa che contiene comandi Lua da eseguire dopo l'inizializzazione di Lua stesso. Questi comandi verranno eseguiti dopo il file «luarc» dell'utente.

Se Lua non è stato compilato in darktable, questa opzione verrà accettata ma non produrrà nessun risultato.

--noiseprofiles <file json contenente il profilo del rumore>

Questa opzione definisce la cartella in cui darktable trova i dati per la riduzione del rumore. La posizione predefinita dipende dall'installazione. I percorsi tipici sono «/opt/darktable/share/darktable/noiseprofile.json» e «/usr/share/darktable/noiseprofile.json».

--conf <proprietà>=<valore>

darktable supporta un'ampia gamma di parametri di configurazione che l'utente definisce in «darktablerc» che è il file di configurazione di darktable nella cartella dell'utente. Si possono scavalcare temporaneamente le impostazioni individuali usando questa opzione nella linea di comando: tuttavia, queste impostazioni non saranno salvate in «darktablerc».

1.1.2. Comando darktable-cli

Questo comando avvia l'interfaccia a linea di comando che permette di esportare le immagini.

Questa variante non avvia nessun display ma opera in pura modalità console, senza utilizzare X11, wayland, ecc. è una modalità utile per avviare lavori in background su di un server.

darktable-cli accetta i seguenti parametri da linea di comando:

darktable-cli <input file>|<image folder>
              [<xmp file>]
              <output file>
              [--width <max width>]
              [--height <max height>]
              [--bpp <bpp>]
              [--hq <0|1|true|false>]
              [--verbose]
              [--core <darktable options>]

L'utente deve specificare il nome del file di input e quello del file di output. Tutti gli altri parametri sono opzionali.

<file di input>

Il nome del file di input da esportare o il nome di una cartella contenente immagini di input da esportare.

<file xmp>

Il nome (opzionale) del file sidecar XMP contenente i dati della coda di sviluppo da applicare durante l'esportazione. Se questa opzione non è specificata, darktable cercherà un file XMP che appartiene al file di input.

<file di output>

Il nome del file di output. darktable ottiene il formato del file di esportazione dall'estensione del file stesso. Nel modulo di esportazione di darktable potete usare tutte le variabili disponibili all'interno di darktable per il nome del file di output (vedi Sezione 2.3.12, «Esporta selezionati»). Ovviamente questo dato è obbligatorio se utilizzate il programma all'interno di una cartella che contiene immagini multiple.

--width <larghezza massima>

Questo parametro (opzionale) permette di limitare la larghezza dell'immagine esportata a un certo numero di pixel.

--height <altezza massima>

Questo parametro (opzionale) permette di limitare l'altezza dell'immagine esportata a un certo numero di pixel.

--bpp <bpp>

Un parametro opzionale per definire la profondità di bit dell'immagine esportata; i valori permessi dipendono dal formato del file. Attualmente questa opzione non è ancora funzionante. Se si deve definire la profondità di bit, occorre usare il seguente trucco:

--core
--conf plugins/imageio/format/<FORMAT>/bpp=<VALUE>

dove <FORMATO> è il nome del formato di output scelto.

--hq <0|1|true|false>

Un parametro che definisce se usare il ricampionamento in alta qualità durante l'esportazione (vedi Sezione 8.2, «Opzioni principali»). Il valore predefinito è true (vero).

--verbose

Attiva la verbosità dell'output.

--core <opzioni darktable>

Tutti i parametri da linea di comando che seguono l'opzione «--core» sono passati al core di darktable e gestiti come parametri standard. Vedi Sezione 1.1.1, «Comando darktable» per una descrizione dettagliata.

1.1.3. Comando darktable-generate-cache

Questo comando aggiorna la cache delle miniature. Potete richiamare questo programma per generare tutte le miniature mancanti in background quando il vostro computer è inattivo.

darktable-generate-cache accetta i seguenti parametri da linea di comando:

darktable-generate-cache
              [-h, --help]
              [--version]
              [--min-mip <0-7>] [-m, --max-mip <0 - 7>]
              [--min-imgid <N>] [--max-imgid <N>]
              [--core <darktable options>]

Tutti i parametri sono opzionali. Se avviato senza parametri darktable-generate-cache utilizzerà i valori predefiniti più adatti.

-h, --help

Fornisce informazioni relative all'utilizzo del software.

--version

Fornisce informazioni relative al Copyright e alla versione del software.

--min-mip <0 - 7>, -m, --max-mip <0 - 7>

darktable può gestire e memorizzare le miniature fino a otto diverse risoluzioni per ogni immagine. Questo parametro definisce quale massima risoluzione dovrebbe essere generata ed è predefinito tra 0 e 2. Normalmente non occorre generare tutte le risoluzioni possibili: quelle mancanti verranno generate automaticamente da darktable nel momento del bisogno. Quando viene richiesto di generare risoluzioni multiple in una sola volta le risoluzioni più basse vengono ottenute rapidamente da quelle più alte.

--min-imgid <N>, --max-imgid <N>

Specifica l'intervallo degli identificativi delle immagini sul database da elaborare. Se non viene fornito nessun intervallo darktable-generate-cache processerà tutte le immagini dell'intera collezione.

--core <opzioni darktable>

Tutti i parametri da linea di comando che seguono l'opzione «--core» sono passati al core di darktable e gestiti come parametri standard. Vedi Sezione 1.1.1, «Comando darktable» per una descrizione dettagliata.

1.1.4. Comando darktable-chart

Questo binario è una utility dedicata per creare uno stile da due immagini come RAW+JPEG che sono stati processati dalla fotocamera. Maggiori dettagli relativi al suo utilizzo possono essere trovati in Sezione 10.3, «Utilizzare darktable-chart».

darktable-chart avvia un'interfaccia grafica oppure può essere usato da linea di comando.

darktable-chart
              [--help]
              [<input Lab pfm file>]
              [<cht file>]
              [<reference cgats/it8 or Lab pfm file>]

Tutti i parametri sono opzionali, tuttavia, se volete specificare il nome del secondo file dovrete specificare anche il primo. Avviando darktable-chart in questo modo accederete ad una interfaccia particolare (dettagli disponibili in Sezione 10.3, «Utilizzare darktable-chart»).

--help

Fornisce informazioni relative all'utilizzo del software.

<file di input Lab pfm>

Apre l'utility con il file selezionato come immagine sorgente. Il file di input deve avere un formato Lab Portable Float Map.

<file tabella>

Specifica un file che descrive il layout della tabella utilizzato per la corrispondenza dei colori.

<referenza cgats/it8 oppure file Lab pfm>

Specifica i valori di riferimento sia come valori misurati secondo le specifiche CGATS che come un'immagine di riferimento in formato Lab Portable Float Map.

In alternativa darktable-chart può essere usato da linea di comando per generare uno stile da un file CSV creato in precedenza.

darktable-chart
              --csv
              <csv file>
              <number patches>
              <output dtstyle file>

Tutti i parametri sono obbligatori.

<file csv>

Un file CSV precedentemente salvato da darktable-chart.

<numero campioni>

Il numero di campioni colore da usare per l'impostazione della tabella di ricerca colore dello stile creato.

<file di output dtstyle>

Il nome del file di stile da creare.

1.1.5. Comando darktable-cltest

Questo binario verifica se sul vostro sistema esiste un ambiente OpenCL funzionante affinché darktable possa utilizzarlo. Restituisce un output di debug equivalente a quello di «darktable -d opencl».

darktable-cltest viene richiamato senza alcun parametro:

darktable-cltest

1.1.6. Comando darktable-cmstest

Questo binario verifica che il sottositema per la gestione del colore sul vostro computer sia correttamente configurato e restituisce alcune informazioni utili sul/i profilo/i installato/i sul monitor.

darktable-cmstest viene richiamato senza alcun parametro:

darktable-cmstest