Darktable
Darktable (stylized as darktable) is a free and open-source photography application program and raw developer. Rather than being a raster graphics editor like Adobe Photoshop or GIMP, 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. 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 program features built-in ICC profiles, GPU acceleration (based on OpenCL), and supports most common image formats. 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, bezier 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. Color. Darktable has built-in ICC profile support for sRGB, Adobe RGB, XYZ and linear RGB color spaces. 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, Flickr, email, and to a simple HTML-based web gallery as JPEG, PNG, TIFF, WebP, PPM, PFM and EXR images. Images  can be exported to Wikimedia Commons using an external plugin. 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. Multi-mode histogram. Multiple histogram types are available, all with individually selectable red, green and blue channels: linear, logarithmic and waveform (new in version 1.4). User interface. 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. 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 color 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 some of the cameras which support it. 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. Plugins. darktable includes 67 image adjustment plugins, which it divides into 5 groups; Basic group. Plugins for simple well-known photo adjustment operations include: contrast brightness saturation module; shadows and highlights; color reconstruction; base curve with presets to automatically improve contrast and colors; crop and rotate; orientation; exposure; demosaic; highlight reconstruction; white balance; invert and raw black/white point. Tone group. Plugins 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. Color group. Plugins related to hue and saturation include: velvia, which mimics Velvia film colors by increasing saturation on lower saturated pixels more than on highly saturated pixels; channel mixer; output color profile; color contrast; color correction, to modify the global saturation or to give a tint; monochrome; color zones; color balance; vibrance; color look up table; input color profile and unbreak input color profile. Correction group. Plugins for repairing visual imperfections include: dithering; sharpen; equalizer; denoise (non-local means); defringe; haze removal; denoise (bilateral filter); scale pixel ; rotate pixels; liquify; perspective correction; lens correction using the LensFun library; retouch; spot removal; denoise (profiled); raw denoise; hot pixels and chromatic aberrations. Effect group. Artistic postprocessing plugins used for visual effects include: watermark; framing; split-toning; vignetting; soften; grain; highpass; lowpass; lowlight vision; bloom; color mapping; colorize and graduated density. 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 . Distribution. Darktable is released under the GPL-3.0-or-later as free software. 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, with packages in IPS format available from the maintainer.