darktable page lede image
darktable page lede image

Présentation générale

Chapitre 1. Présentation générale

darktable est une application à code source ouvert qui offre un flux de travail pour le traitement des photographies. Il permet le développement des images enregistrées au format RAW. Il comporte une table lumineuse et une chambre noire virtuelles pour les photographes.

Il gère vos négatifs numériques dans une base de données, il les visualise grâce à une table lumineuse zoomable et vous permet de développer des images au format RAW et de les retoucher.

Fonctionnalités générales
  • darktable fonctionne sous GNU/Linux / GTK3, Mac OS X / macports et Solaris 11 / GTK3 ;

  • édition totalement non destructive ;

  • toutes les fonctions de base de darktable utilisent des tampons de pixels en arithmétique flottante 4x32 bits pour un traitement de haute précision évitant les effets de bandes et les ruptures de dégradé ;

  • darktable fait une utilisation intensive des instructions Streaming SIMD Extensions 2 (SSE2) du CPU afin d’accélérer le traitement. En fait, darktable exige soit un processeur compatible SSE2 soit un processeur ARM64.

  • accélération GPU via OpenCL (détection et activation au lancement) ;

  • l’essentiel du traitement des images est effectué dans l’espace colorimétrique CIELab, qui est bien plus étendu que le gamut (gamme des couleurs prises en compte) des écrans modernes, des imprimantes et même de la vision humaine ;

  • Écran géré en pleines couleurs avec épreuvage et vérification du gamut. Profil ICC intégré pour effectuer l’exportation : sRGB, Adobe RGB, XYZ et RGB linéaire ;

  • un module de collection vous permet d’exécuter des requêtes flexibles de base de données, de rechercher vos images par mots-clés, par notes (étoiles), par labels de couleur et de faire beaucoup plus. Filtrage et tri de vos collections par requêtes sur la base de données ou simple marquage par des mots-clés appropriés seront, tous les jours, des outils utiles dans le flux de travail de traitement de vos photos ;

  • importe une variété de formats d’image, standard, RAW, de grande plage dynamique (par exemple JPEG, CR2, OpenEXR, PFM, ...) ;

  • grâce à des caches logiciels à plusieurs niveaux, darktable possède une interface utilisateur sans latence, plein écran et zoomable  ;

  • prise de vue en mode connecté ;

  • le puissant système d’exportation prend en charge les albums web Picasa, le téléchargement Flickr, l’enregistrement sur disque, la copie 1:1, l’attachement à un courriel et il peut générer une galerie web simple basée sur html. darktable vous permet d’exporter des images en plage dynamique standard (JPEG, JPEG2000, PNG, TIFF, PDF), en 16 bits (PPM, TIFF) ou en grande plage dynamique linéaire (PFM, EXR) ;

  • darktable utilise à la fois des fichiers liés XMP et sa base de données rapide pour enregistrer les métadonnées et les paramètres de traitement. Toutes les données EXIF sont lues et écrites en utilisant libexiv2 ;

  • darktable est livré avec plus de 60 modules de traitement d'images qui couvrent l’ensemble des besoins depuis les opérations de base, les modifications de valeurs tonales, la manipulation de la couleur, la correction des défauts courants des images, jusqu’aux effets artistiques ;

  • de nombreux modules de darktable peuvent être combinés par des opérateurs de fusion afin de permettre encore plus d’options de développement ;

  • une fonctionnalité puissante de masque vous donne un contrôle précis de l'action des modules sur différentes parties d’une image. Vous pouvez, à votre choix, dessiner un masque en utilisant différentes formes ou définir un masque paramétrique basé sur les valeurs des pixels ;

  • la plupart des modules peuvent exister en tant qu’instances multiples. En combinaison avec la fonctionnalité de masque, une opération pourra avoir des actions différentes sur les différentes parties d’une image ;

  • darktable introduit un réducteur de bruit « en un clic » très efficace, pourtant simple, qui fonctionne toujours juste™. Il est conçu sous forme de module où les performances de la réduction de bruit ne dépendent que du boîtier et de la sensibilité ISO. Une base de données de profils comporte les paramètres pour bien plus de 200 boîtiers populaires ;

  • pour améliorer la fonctionnalité darktable possède une interface souple d'écriture de scripts. Il utilise Lua comme langage de script ;

  • Les images contenant des coordonnées de géolocalisation peuvent être affichées sur une carte. Différentes sources de cartes sont proposées à votre choix. Des coordonnées de géolocalisation peuvent être assignées aux images en les déposant manuellement sur la carte ou, en appliquant des données de traces GPX ;

  • darktable dispose d'une fonctionnalité de diaporama intégrée qui vous permet d'afficher votre collection d'images en mode plein écran ;

  • Un module polyvalent d'impression, avec un support complet de la gestion des couleurs, vous permet d'envoyer votre image à une imprimante connectée .

1.1. Appel du programme

darktable est fourni avec deux exécutables : la variante standard avec l’interface graphique (« GUI ») lancée par darktable et une variante avec une interface en ligne de commande lancée par darktable-cli. De plus darktable est livré avec quelques autres exécutables destinés à des fins spéciales.

1.1.1. Exécutable darktable

Cet exécutable lance darktable avec son interface graphique (« GUI ») et toutes ses fonctionnalités. C’est la manière standard d’utiliser darktable.

darktable est appelé avec les paramètres suivants de la ligne de commande :

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>]

Tous les paramètres sont optionnels. Dans la plupart des cas, les utilisateurs lanceront darktable sans paramètre supplémentaire. Dans ce cas, darktable utilise les valeurs par défaut adaptées.

-d

Cette option active la sortie de débogage vers le terminal. Il y a plusieurs sous-systèmes dans darktable et le débogage de chacun d’eux peut être activé séparément. Vous pouvez utiliser cette option plusieurs fois si vous désirez déboguer la sortie de plus d’un sous-système.

<input file>|<image folder>

Optionnellement vous pouvez indiquer le nom de fichier d’une image ou le nom d’un dossier contenant des fichiers d’images. Si un nom de fichier est donné darktable démarre en mode chambre noire avec ce fichier ouvert. Si un nom de dossier est donné darktable démarre en mode table lumineuse avec le contenu de ce dossier comme collection courante.

--version

Avec cette option darktable affiche son numéro de version, un avis de droits d'auteur, quelques autres informations utiles et ensuite s'arrête.

--disable-opencl

Cette option empêche darktable d'initialiser le sous-système OpenCL. Utilisez cette option dans le cas de plantage de darktable au démarrage en raison d’une implémentation défectueuse d’OpenCL.

--library <library file>

Pour un accès rapide, darktable conserve les informations des images qu'il a traitées dans une base de données sqlite. Son emplacement par défaut est « $HOME/.config/darktable/library.db ». Vous pouvez donner un autre emplacement si, par exemple, vous désirez expérimenter sans polluer votre library.db d’origine. Si le fichier de base de données n’existe pas, darktable va le créer pour vous. Vous pouvez aussi indiquer « :memory: » comme nom de fichier – dans ce cas, la base de données résidera dans la mémoire système – toutes les modifications seront perdues à l’arrêt de darktable.

Quand darktable démarre, il verrouille la bibliothèque de l'utilisateur courant. Il fait ceci en écrivant l'identificateur du processus courant (PID) dans un fichier de verrouillage « <library file>.lock » à côté de la bibliothèque spécifiée. Si darktable trouve un fichier de verrouillage de la bibliothèque il s'arrêtera immédiatement.

--datadir <data directory>

Cette option définit le répertoire où darktable recherche ses données d'exécution. L’emplacement par défaut dépend de votre installation. Des emplacements typiques sont « /opt/darktable/share/darktable/ » et « /usr/share/darktable/ ».

--moduledir <module directory>

darktable a une structure modulaire et organise ses modules sous forme de bibliothèques partagées à charger lors de l'exécution. Avec cette option, vous indiquez à darktable où il doit les rechercher. L’emplacement par défaut dépend de votre installation. Des emplacements typiques sont « /opt/darktable/lib64/darktable/ » et « /usr/lib64/darktable/ ».

--tmpdir <tmp directory>

Emplacement où darktable enregistre ses fichiers temporaires. Si cette option n’est pas fournie, darktable utilise la valeur par défaut du système.

--configdir <config directory>

Cette option définit le répertoire où darktable enregistre la configuration propre à l’utilisateur. L’emplacement par défaut est « $HOME/.config/darktable/ ».

--cachedir <cache directory>

darktable conserve un cache des miniatures des images pour une prévisualisation rapide et un cache des exécutables OpenCL précompilés pour un démarrage rapide. Par défaut, le cache est situé dans « $HOME/.cache/darktable/ ». Il peut exister plusieurs caches de miniatures en parallèle – un pour chaque fichier de bibliothèque.

--localedir <locale directory>

Emplacement où darktable recherche ses chaînes de texte propres aux différentes langues. L’emplacement par défaut dépend de votre installation. Des emplacements typiques sont « /opt/darktable/share/locale/ » et « /usr/share/locale/ ».

--luacmd <lua command>

Une chaîne contenant les commandes Lua à exécuter après l'initialisation de Lua. Ces commandes seront exécutées après votre fichier « luarc ».

Si Lua n'est pas compilé, cette option sera acceptée mais sera sans effet.

--noiseprofiles <noiseprofiles json file>

Le fichier json qui contient les profils de bruit spécifiques aux boîtiers. L'emplacement par défaut dépend de votre installation. Les emplacements typiques sont « /opt/darktable/share/darktable/noiseprofile.json » et « /usr/share/darktable/noiseprofile.json ».

--conf <key>=<value>

darktable prend en charge un riche ensemble de paramètres de configuration que l’utilisateur peut définir dans « darktablerc » – fichier de configuration de darktable se trouvant dans le répertoire de configuration de l’utilisateur. Vous pouvez écraser de manière temporaire des paramètres particuliers depuis la ligne de commande à l’aide de cette option – cependant, ces paramètres ne seront pas enregistrés dans « darktablerc ».

1.1.2. Exécutable darktable-cli

Cet exécutable lance la variante en ligne de commande de l’interface de darktable qui permet l’exportation d’images.

Cette variante n'ouvre aucun affichage et travaillera donc en mode console pur sans X11, wayland, etc.  – ce mode est utile pour les serveurs exécutant des travaux en arrière plan.

darktable-cli est appelé avec les paramètres suivants de la ligne de commande :

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’utilisateur doit fournir un nom de fichier d’entrée et un nom de fichier de sortie. Tous les autres paramètres sont optionnels.

<input file>

Le nom du fichier en entrée à exporter ou le nom d'un dossier contenant les images en entrée qui doivent être exportées.

<xmp file>

Nom optionnel d’un fichier lié XMP qui contient les données de l’historique de développement qui sera appliqué lors de l’exportation. Si cette option n’est pas donnée, darktable recherchera un fichier XMP appartenant au(x) fichier(s) d’entrée indiqué(s).

<output file>

Le nom du fichier de sortie. darktable fait dériver le format du fichier d'exportation de l'extension du fichier. Pour le nom de fichier de sortie, vous pouvez aussi utiliser toutes les variables disponibles dans le module exportation de darktable (voyez la Section 2.3.12, « Exportation de la sélection »). Pour des raisons évidentes ceci est obligatoire si vous utilisez le programme pour un dossier contenant de nombreuses images.

--width <max width>

Ce paramètre optionnel permet de limiter la largeur de l’image exportée au nombre de pixels indiqué.

--height <max height>

Ce paramètre optionnel permet de limiter la hauteur de l’image exportée au nombre de pixels indiqué.

--bpp <bpp>

Paramètre optionnel définissant la profondeur de bit de l’image exportée. Les valeurs autorisées dépendent du format de fichier. Actuellement, cette option n’est pas encore fonctionnelle. Si vous avez besoin de définir la profondeur de bit, vous devrez utiliser la solution de rechange suivante :

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

où <FORMAT> est le nom du format de sortie sélectionné.

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

Indicateur définissant s’il faut utiliser un ré-échantillonnage de haute qualité lors de l’exportation (voyez la Section 8.2, « Fonctionnement »). Vrai par défaut.

--verbose

Activer la sortie verbeuse.

--core <darktable options>

Tous les paramètres de la ligne de commande suivant « --core » sont passés au noyau de darktable et manipulés comme des paramètres standards. Voyez Section 1.1.1, « Exécutable darktable » pour une description détaillée.

1.1.3. Exécutable darktable-generate-cache

Cet exécutable met à jour le cache des miniatures. Vous pouvez lancer ce programme, en arrière-plan quand votre ordinateur est inactif, pour générer toutes les miniatures manquantes .

darktable-generate-cache est appelé avec les paramètres suivants de la ligne de commande :

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

Tous les paramètres sont optionnels. S'il est démarré sans paramètre darktable-generate-cache utilise des valeurs par défaut raisonnables.

-h, --help

Donne des informations d'utilisation et s'arrête.

--version

Donne des informations de version et de copyright et s'arrête.

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

darktable peut gérer et stocker, pour chaque image, des miniatures ayant jusqu'à huit niveaux différents de résolution. Ces paramètres définissent la résolution maximale qui doit être générée et la valeur par défaut dans une plage de 0 à 2. Il n'est normalement pas nécessaire de générer ici toutes les résolutions possibles ; celles qui manquent seront générées automatiquement par darktable au moment où elles seront nécessaires. Quand on demande la génération de plusieurs résolutions à la fois, les images de plus basse résolution sont rapidement sous-échantillonnées à partir de l'image de la plus haute résolution.

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

Spécifie la plage d'IDs des images de la base de données sur laquelle il faut travailler. Si aucune plage n'est donnée, darktable générera le cache de toutes les images de la collection.

--core <darktable options>

Tous les paramètres de la ligne de commande suivant « --core » sont passés au noyau de darktable et manipulés comme des paramètres standards. Voyez Section 1.1.1, « Exécutable darktable » pour une description détaillée.

1.1.4. Exécutable darktable-chart

Cet exécutable est un utilitaire dédié à la création de styles à partir de paires d'images telles que RAW+JPEG fournies par le boîtier. Des détails de son utilisation peuvent être trouvés dans la Section 10.3, « Utilisation de darktable-chart ».

darktable-chart soit démarre une interface graphique soit est utilisé comme programme en ligne de commande.

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

Tous les paramètres sont optionnels, cependant, si vous voulez fournir le deuxième nom de fichier vous devez aussi fournir le premier, etc. Démarrer darktable-chart de cette manière ouvre une interface graphique spéciale (des détails peuvent être trouvés dans la Section 10.3, « Utilisation de darktable-chart »).

--help

Donne des informations d'utilisation et s'arrête.

<input Lab pfm file>

Ouvre l'utilitaire avec le fichier donné comme image source. Le fichier en entrée doit être au format Lab Portable Float Map.

<cht file>

Spécifie un fichier décrivant la disposition du diagramme de références couleur.

<reference cgats/it8 or Lab pfm file>

Spécifie les valeurs de référence, soit comme valeurs mesurées en fonction du standard CGATS, soit comme image de référence dans le format Lab Portable Float Map.

Alternativement darktable-chart peut être utilisé comme un programme en ligne de commande pour générer des fichiers de style à partir de fichiers CVS précédemment sauvegardés.

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

Tous les paramètres sont obligatoires.

<csv file>

Un fichier CSV précédemment sauvegardé avec darktable-chart.

<number patches>

Le nombre de pastilles de couleur à utiliser dans le paramétrage de la table correspondance couleurs du style créé.

<output dtstyle file>

Nom du fichier de style qui doit être créé.

1.1.5. Exécutable darktable-cltest

Cet exécutable vérifie s'il y a sur votre système un environnement OpenCL utilisable par darktable. Il émet une sortie de débogage équivalente à celle qu'on obtient par l'appel « darktable -d opencl » et puis s'arrête.

darktable-cltest est appelé sans paramètre sur la ligne de commande :

darktable-cltest

1.1.6. Exécutable darktable-cmstest

Cet exécutable détermine si le sous-système de votre ordinateur gérant la couleur est correctement configuré et affiche des informations sur les profils-moniteur installés .

darktable-cmtest est appelé sans paramètre sur la ligne de commande :

darktable-cmstest