Darktable

Last updated
darktable
Original author Johannes Hanika [1]
Initial releaseApril 2009;16 years ago (2009-04) [2]
Stable release
5.4.0 [3]   OOjs UI icon edit-ltr-progressive.svg / 21 December 2025;31 days ago (21 December 2025)
Repository github.com/darktable-org/darktable
Written in C and GTK
Operating system FreeBSD
Linux
macOS
Solaris
Windows
Platform x86-64, ARM64
Size 8.72 MiB (source (tar.gz))
108 MiB (Windows)
91 MiB (macOS)
Available in18 languages [4] [5]
Type Photo post-production
License GPL-3.0-or-later [6]
Website www.darktable.org OOjs UI icon edit-ltr-progressive.svg

Darktable (stylized as darktable) is a free and open-source photography application and raw developer. Rather than being a raster graphics editor like Adobe Photoshop or GIMP, [7] it comprises a subset of image editing operations specifically aimed at non-destructive raw image post-production. It is primarily focused on improving a photographer's workflow by facilitating the handling of large numbers of images. It is freely available in versions tailored for most major Linux distributions, macOS, Solaris and Windows and is released under the GPL-3.0-or-later software license. [6]

Contents

Features

Darktable involves the concept of non-destructive editing, similar to that of some other raw manipulation software. Rather than being immediately applied to raster data of the image, the program keeps the original image data until final rendering at the exporting stage — while parameter adjustments made by a user display in real-time. The programme features built-in ICC profiles, GPU acceleration (based on OpenCL), and supports most common image formats.

Main features [8]

Colour

Darktable has built-in ICC profile support for sRGB, Adobe RGB, XYZ and linear RGB colour spaces. [9]

Since version 2.6, darktable uses a “scene-referred” colour workflow to get consistent results throughout varied lighting conditions and even across cameras and lenses.

Due to evolution, the human vision system makes significant adjustments of how a scene is perceived. Raw images from cameras have none of these corrections and therefore significant processing needs to be applied to make photos aesthetically appealing and meet the expectations of audiences. Other raw editors may use a so-called “display-referred” workflow to give photographers a decent looking template to start working from, meaning they already apply significant transformations, such as Gamma curves or LUTs to the image and the photographer can only make their own adjustments on top of the standard transformations. This is problematic, as the image has lost its linearity, this makes the edits of the photographer fundamentally unpredictable. Since a Gamma curve acts the most on the extremes of the image, that being bright highlights and deep shadows, these areas especially will be difficult to control, as the different transformations will be multiplied over each other. [10]

Darktable gives the photographer full control over the entire processing pipeline and by default, preserves linearity until the last step. This means that all adjustments happen in the correct scene-linear colour space and only in the last step, a tone-mapping programme applies a parametric Gamma curve, which again is under the user’s control. As all transformations are linear, the user can control the output more easily. Furthermore, the workflow itself is inspired by the colour science of cinema, meaning it divides the workflow into primary/corrective and secondary/aesthetic colour grading. The first modules in the standard pipeline are purely about colour correction and getting a properly looking image, all cameras and lens combinations until this point will be matched very closely. After the image has been corrected (no tint, correctly exposed, etc.), on top of this correct image, the photographer makes their aesthetic adjustments. As all aesthetic effects are made on top of a similar “template”, these effects will have approximately the same look, even if lenses and cameras produce different, initial raw data. [11]

Masks

Support for drawn masks was added in Darktable version 1.4, allowing application of effects to manually specified areas of an image. There are five mask types available: brush, circle, ellipse, Bézier path, and gradient; all are resizable, allow fade-out radius for smooth blending and can have their opacity controlled. An arbitrary number of masks can be created and are collected into a "mask manager" on the left hand side of the darkroom UI. [12]

Over multiple versions, masks have been refined and now additionally to being drawn, they can be controlled parametrically, or imported from external images. If a module warps the image, such as lens correction or perspective correction, said warping operations will be automatically applied to masks as well, meaning that for example a gradient tracking the horizon will be rendered correctly, even after significant perspective corrections are applied. [13] Parametric masks can be created by selecting any given R, G, B, and/or Lightness, Chroma and Hue value. They can be combined with drawn masks, such that the parameters are only evaluated in a certain area of the image. [14] Masks can also be blended with different logic operators, (exclusive, inclusive, etc.) [15] and blend modes (addition, multiply, average, etc.) [16]

Importing and exporting

Raw image formats, JPEG, HDR and PFM images can be imported from disk or camera, and exported to disk, Picasa Web Albums, email, and to a simple HTML-based web gallery as JPEG, PNG, JPEG XL, TIFF, WebP, PPM, PFM and EXR images. [17] Images can be exported to Wikimedia Commons using an external plugin. [18]

Scripting

Darktable can be controlled by scripts written in Lua version 5.2. Lua can be used to define actions which Darktable should perform whenever a specified event is triggered. One example might be calling an external application during file export in order to apply additional processing steps outside of Darktable. [19]

Scopes

Histogram

The histogram shows how many pixels in the image have a certain value. Left on the X-axis is 0% lightness, and right is 100% lightness. The Y axis represents how many pixels have said value. [20]

Multiple histogram types are available, all with individually selectable red, green and blue channels: linear, logarithmic and waveform (new in version 1.4). [12]

CF036974.jpg
Darktable Histogram for CF036974.png
In this example, the histogram is set to a logarithmic scale. The sea and the sky show up clearly as the two cyan spikes, the darker spike represents the sea at about 50%-55% and the brighter spike the sky, with about 60%-75%.

Waveform

The waveform monitor functions similarly to the histogram and shows the lightness of certain pixels. However, it also shows where the pixels are located. Left on the X-axis of the waveform monitor is also left in the image, while right on the monitor, is right on the image. The Y-axis shows brightness, but for every channel. If an area is white, it means this area is colour neutral, if red, green and blue show up separately, it means this area has a colourful tint. Furthermore, it is possible to infer which colour tint, if Green and Blue are at the same level, but Red is below the two, it means this area has a cyan tint.

CF036974.jpg
Darktable Waveform for CF036974.png
In this waveform, the sky and sea are heavily cyan, as clearly shown by the big bars around 60%. The buildings themselves are bright and red and orange, as can be seen in the red spikes above the big bar. The shadows in the image approach neutral tint as they get darker and are fully neutral when they reach black.

RGB parade

The RGB parade works identically to the waveform monitor, but it shows the three channels side-by-side instead of overlaid over one another.

CF036974.jpg
Darktable RGB Parade for CF036974.png
The RGB parade shows the exact same information as the waveform, but side-by-side.

Vectorscope

The Vectorscope works purely with colour. The centre is neutral, while the outer part ring represents maximum chroma for a given colour. The Vectorscope can also overlay samples taken directly from the image with the colour picker, display guides for colour harmonies and work in different colour spaces.

CF036974.jpg
Darktable Vectorscope for CF036974.png
The colour scheme of the image becomes clearly visible. The buildings are orange and red, the sea is cyan and the trees are green.

User interface

Darktable 2.4.2 screenshot.png
Darktable 2.4.2 as it appears after installation
Darktable 4.4.2 with a film roll opened in lighttable view.png
Darktable 4.4.2 in lighttable view
Darktable 4.4.2 with an image opened in darkroom view.png
Darktable 4.4.2 in darkroom view

Darktable has two main modes: "lighttable" and "darkroom". Each represents a step in the image development process. Two more modes are tethering and a map view. Upon launching, lighttable opens by default, where image collections are listed. All panels in all modes can be minimized to save screen real estate. [21]

Lighttable

The left panel is for importing images, displaying Exif information, and filtering. Rating and categorizing buttons are at the top, while the right-side panel features various modules such as a metadata editor and a tag editor. A module used to export images is located at the bottom-right.

Darkroom

The second mode, "darkroom", displays the image at center, with four panels around it; most tools appear on the right side. The left panel displays a pannable preview of the current image, an undo history stack, a colour picker, and Exif information. A filmstrip with other images is displayed at the bottom, and can be sorted and filtered using lists from the upper panel. The latter also gives access to the preferences configuration. Darktable's configuration allows custom keyboard shortcuts and personalized defaults.

Tethering

The third mode allows tethering through gPhoto to cameras which offer suitable support. [22]

Map

The fourth mode can display maps from different online sources and geotags images by drag-and-drop. It also uses maps to show images already geotagged by a camera.

Modules

Darktable-1.0-plugins.png
Old plugin palette with 14 active plugins, of which 2 are set as favorites (in red)
Darktable-1.2-plugins.png
Current plugin palette used in Darktable 1.2

As of December 2019, darktable includes 67 image adjustment modules, which it divides into 5 groups. [17] By default, only the modules relevant and compatible with the current workflow are displayed. The hidden modules can be searched for by using the search bar, or by activating the “modules: all” preset next to the group headers. Modules receive input from the module below them, then process them and pipe the output into the module above them. The changes the user makes are updated in real time. [23] There are only four mandatory modules, as these are technically necessary to make an image, that can be loaded and displayed by other non-raw editing programmes: raw black/white point, demosaic, input colour profile, output colour profile.

Basic group

The basic group includes modules which are required at minimum to make a presentable image, such as exposure, contrast, cropping, etc.

Tone group (display-referred, hidden)

Modules related to contrast and lighting include: fill light for modifying the exposure based on pixel lightness; levels to set black; tone curve; zone system; filmic; local contrast; global tone mapping and tone mapping.

Colour group

The colour group includes modules, which manipulate colour either aesthetically or correctively.

Colour calibration

The colour calibration module is used to make the image perfectly neutral and corrected in its colour. It features different programmes for full Chromatic Adaptation Transformation, which can approximate how a given colour would have looked under a different light source. By default, it is the first module immediately after “input colour profile”.

Darktable automatically computes a standard illuminant by reading the metadata of the raw file. The user can manually select an area of the image, which is supposed to be neutral, a gray card, for example. Darktable will then compute the illuminant of the neutral area and its spectrum, which is then used to neutralise this light source and apply corrections for its colour metamerism. To make this process even more accurate, users can photograph a colour chart under the light source they wish to neutralise. Darktable will then compute a correction matrix with the channel mixer, which is similar to loading a matrix based ICC profile.

The colour calibration module is significantly more accurate than white balance, as white balance only ensures that R=G=B on neutral surfaces; the lens, demosaicing, the effect of colour metamerism from different light sources, and even the other colours other than neutral, are ignored by white balance. [24]

RGB primaries

This module is a channel mixer, used for defining how the colours of the image look. By default, it is the first secondary colour grading module. The benefit of using this module in favour of other techniques, is that users can quickly and easily get aesthetic results. Even when colours have their appearance modified, the relationships between colours remain the same, for example, if the photographer shifts the blue primary towards cyan, yellow gets shifted towards orange. If the intensity of blue gets increased, yellow has its intensity increased by an equal amount. [25]

Colour equaliser

The colour equaliser is used to adjust colours' hue, saturation and brightness, based on their current hue. As an example, it can be used to correct skin tones, if the colour grade from the RGB primaries module has made them unappealing. It is best to make small changes with this module and a general colour grade with the RGB primaries module. If changes with this module are too strong, it will amplify noise and make colour transitions impossibly harsh. [26]

Correction group

The correction group hosts modules for correcting problems with the capture itself.

Effect group

In this group, modules that are used for special effects are located.

Development

Google Summer of Code

In 2011, the Darktable team participated in the Google Summer of Code (GSoC). The main goals were to remove libglade dependency from Darktable and to make room for more modularity. The input system for handling shortcuts was also rewritten and incorporated into version 0.9. [27] [28]

Distribution

Darktable is released under the GPL-3.0-or-later as free software. [29] The current version of Darktable works on Linux, macOS and Windows. Many Linux distributions include Darktable in their default repositories, including Debian, Fedora, openSUSE, Arch Linux, and Gentoo Linux.

Darktable also runs on Solaris 11, [30] with packages in IPS format available from the maintainer. [31]

Localization

Darktable is available in multiple languages, but the availability of various locales has varied across Darktable releases. Darktable is notable for using all-lowercase literals in every language by default. Since version 4.4.0, a new locale called "en@truecase" allows users to apply conventional casing to English. [32]

ver. en En sq af ca cs da de es eo fi fr it ja he hu nl nb pt-BR pl sl sk ru uk tr zh-CN zh-TW
3.0.0 [33] YesNoNoNoYesYesYesYesYesNoNoYesYesYesYesYesYesYesNoYesYesNoYesNoNoNoNo
3.0.2 [34] YesNoNoNoYesYesYesYesYesNoNoYesYesYesYesYesYesNoNoYesYesNoYesNoNoNoNo
3.2.1 [35] YesNoNoNoNoNoNoYesYesNoNoYesYesNoYesNoNoNoYesYesYesNoNoNoNoNoNo
3.4.0 [36] YesNoNoYesNoYesNoYesYesNoYesYesYesNoYesYesNoNoYesYesYesYesYesNoNoNoNo
3.4.1 [37] YesNoNoYesNoYesNoYesYesNoYesYesYesNoYesYesNoNoYesYesYesYesYesNoNoNoNo
3.6.0 [38] YesNoNoYesNoNoNoYesYesYesNoYesYesNoYesYesYesNoYesNoYesNoYesYesNoNoNo
3.6.1 [39] YesNoNoYesNoNoNoYesYesYesNoYesYesNoYesYesYesNoYesNoYesNoYesYesNoNoNo
3.8.0 [40] YesNoNoNoNoNoNoYesYesYesYesYesYesYesYesYesNoNoYesYesYesNoNoYesNoYesNo
3.8.1 [41] YesNoNoNoNoNoNoYesYesYesYesYesYesYesYesYesYesNoYesYesYesNoNoYesNoYesNo
4.0.0 [42] YesNoNoNoNoYesNoYesYesYesYesYesYesYesYesYesYesNoYesNoYesNoYesYesNoYesNo
4.0.1 [43] YesNoNoNoNoYesNoYesYesYesYesYesYesYesYesYesYesNoYesNoYesNoYesYesYesYesYes
4.2.0 [44] YesNoYesNoNoNoNoYesYesNoYesYesYesYesNoYesYesNoYesYesYesNoYesYesYesNoYes
4.2.1 [45] YesNoYesNoNoNoNoYesYesNoYesYesYesYesNoYesYesNoYesYesYesNoYesYesYesNoYes
4.4.0 [32] YesYesYesNoNoNoNoYesYesNoNoYesNoYesNoYesNoNoYesYesYesNoNoYesNoYesYes
4.4.1 [46] YesYesYesNoNoNoNoYesYesNoYesYesNoYesYesYesNoNoYesYesYesNoYesYesNoYesYes
4.4.2 [47] YesYesYesNoNoNoNoYesYesNoYesYesNoYesYesYesNoNoYesYesYesNoYesYesYesYesYes
4.6.0 [48] YesYesYesNoNoYesNoYesYesNoYesYesYesYesNoYesYesNoYesYesYesNoYesYesNoYesYes
5.2.0 [49] YesYesYesNoNoYesNoYesYesNoYesYesYesYesNoYesYesNoYesNoYesNoYesYesNoYesYes
All 18 locales available in Darktable 5.2.0, including "en@truecase" I18n list darktable 5.2.0 2025-12-18 (18).png
All 18 locales available in Darktable 5.2.0, including "en@truecase"

See also

References

  1. "contact". Darktable.org. Archived from the original on 2012-03-21. Retrieved March 16, 2012.
  2. "Darktable main repository". Darktable.org. Archived from the original on 2017-01-19. Retrieved August 23, 2012.
  3. "release 5.4.0". 21 December 2025. Retrieved 22 December 2025.
  4. "darktable 4.4.2 released". darktable.org. 22 July 2023. Archived from the original on July 31, 2023. Retrieved August 18, 2023.{{cite web}}: CS1 maint: bot: original URL status unknown (link)
  5. "LINGUAS". darktable.org. Retrieved February 4, 2016.
  6. 1 2 "about". Darktable.org. Archived from the original on 2012-03-07. Retrieved March 15, 2012.
  7. "Welche Programme nutzen Sie für die Fotobearbeitung?". DER STANDARD (in Austrian German). Retrieved 2025-07-30.
  8. "features". darktable. 2017-06-13. Retrieved 2026-01-20.
  9. "3.2.10. Color management | usermanual | darktable". Archived from the original on 2018-01-14. Retrieved 2018-01-13.
  10. "darktable's color pipeline". darktable user manual. Retrieved 2026-01-19.
  11. "color calibration". darktable user manual. Retrieved 2026-01-19.
  12. 1 2 Willis, Nathan. "Darktable 1.4". Archived from the original on 2014-05-02. Retrieved April 30, 2014.
  13. "drawn masks". darktable user manual. Retrieved 2026-01-19.
  14. "parametric masks". darktable user manual. Retrieved 2026-01-19.
  15. "combining drawn & parametric masks". darktable user manual. Retrieved 2026-01-19.
  16. "blend modes". darktable user manual. Retrieved 2026-01-19.
  17. 1 2 "features". Darktable.org. Archived from the original on 2013-04-17. Retrieved March 15, 2012.
  18. "DtMediaWiki" . Retrieved October 14, 2018.
  19. "Darktable user manual chapter 7". Darktable.org. Archived from the original on 2017-11-17. Retrieved April 30, 2014.
  20. "scopes". darktable user manual. Retrieved 2026-01-20.
  21. Schroder, Carla. "A RAW Feast on the Linux Darktable (Photo Editor)". Archived from the original on May 7, 2012. Retrieved April 28, 2012.
  22. Schroder, Carla. "How to Remote Control Your Camera with Darktable on Linux". Archived from the original on May 2, 2014. Retrieved April 30, 2014.
  23. "the anatomy of a processing module". darktable user manual. Retrieved 2026-01-20.
  24. "color calibration". darktable user manual. Retrieved 2026-01-20.
  25. "rgb primaries". darktable user manual. Retrieved 2026-01-20.
  26. "color equalizer". darktable user manual. Retrieved 2026-01-20.
  27. "Who's New in Google Summer of Code: Part 7". Google Open Source Blog. Archived from the original on 2011-07-29. Retrieved 2012-03-15.
  28. "Glade Removal Complete, Moving on to Keyboard Accelerators". 6 June 2011. Archived from the original on 2013-03-30. Retrieved 2012-03-17.
  29. "GNU General Public License". Free Software Foundation. June 2007. Archived from the original on 2012-12-17. Retrieved August 23, 2012.
  30. "Darktable and Solaris: It Just Works(tm) .... and there are some nifty benefits too". 7 May 2012. Archived from the original on 2012-09-15. Retrieved August 23, 2012.
  31. "www.jmcpdotcom.com/Packages". Archived from the original on 2013-12-22. Retrieved 2012-07-25.
  32. 1 2 Obry, Pascal (2023-06-21). "darktable 4.4.0 released". darktable. Retrieved 2023-09-02.
  33. Obry, Pascal (2019-12-24). "darktable 3.0.0 released". darktable. Retrieved 2024-01-26.
  34. Obry, Pascal (2020-04-17). "darktable 3.0.2 released". darktable. Retrieved 2023-09-02.
  35. Obry, Pascal (2020-08-10). "darktable 3.2.1 released". darktable. Retrieved 2023-09-02.
  36. Obry, Pascal (2020-12-24). "darktable 3.4.0 released". darktable. Retrieved 2023-09-02.
  37. Obry, Pascal (2021-02-06). "darktable 3.4.1 released". darktable. Retrieved 2023-09-02.
  38. Obry, Pascal (2021-07-03). "darktable 3.6.0 released". darktable. Retrieved 2023-09-02.
  39. Obry, Pascal (2021-09-15). "darktable 3.6.1 released". darktable. Retrieved 2023-09-02.
  40. Obry, Pascal (2021-12-24). "darktable 3.8.0 released". darktable. Retrieved 2023-09-02.
  41. Obry, Pascal (2022-02-11). "darktable 3.8.1 released". darktable. Retrieved 2023-09-02.
  42. Obry, Pascal (2022-07-02). "darktable 4.0.0 released". darktable. Retrieved 2023-09-02.
  43. Obry, Pascal (2022-09-17). "darktable 4.0.1 released". darktable. Retrieved 2023-09-02.
  44. Obry, Pascal (2022-12-21). "darktable 4.2.0 released". darktable. Retrieved 2023-09-02.
  45. Obry, Pascal (2023-02-21). "darktable 4.2.1 released". darktable. Retrieved 2023-09-02.
  46. Obry, Pascal (2023-07-01). "darktable 4.4.1 released". darktable. Retrieved 2023-09-02.
  47. Obry, Pascal (2023-07-22). "darktable 4.4.2 released". darktable. Retrieved 2023-09-02.
  48. Obry, Pascal (2023-12-21). "darktable 4.6.0 released". darktable. Retrieved 2024-01-03.
  49. Obry, Pascal (2025-06-21). "darktable 5.2.0 released". darktable. Retrieved 2025-12-18.

Bibliography