darktable page lede image
darktable page lede image

Export selected

2.3.12. Export selected

Workflow ends in this panel with the exporting of your developed images. You can export to a file on disk, email, various on-line storage places, a webalbum, or a book template. Tip: you can use ctrl-e from within the darkroom mode to export.

All settings in this panel can be saved for later reuse. Press the button to manage your presets. Usage

target storage

Where to store your selected images. Different back-ends are implemented, including file on disk, a LaTeX book template and various web albums. Depending on the selected target, you will be asked to give additional information, like filenames, or account name and password.

filename template

You can define filenames that darktable generates for export. Several pre-defined variables can be used as placeholders:

$(ROLL_NAME) roll of the input image
$(FILE_FOLDER) folder containing the input image
$(FILE_NAME) basename of the input image
$(FILE_EXTENSION) extension of the input image
$(ID) the image id
$(VERSION) the duplicate version (see Section 2.2.7, “Sidecar files”)
$(SEQUENCE) a sequence number within export job
$(YEAR) year at date of export
$(MONTH) month at date of export
$(DAY) day at date of export
$(HOUR) hour at time of export
$(MINUTE) minute at time of export
$(SECOND) second at time of export
$(EXIF_YEAR) Exif year
$(EXIF_MONTH) Exif month
$(EXIF_DAY) Exif day
$(EXIF_HOUR) Exif hour
$(EXIF_MINUTE) Exif minute
$(EXIF_SECOND) Exif second
$(STARS) star rating
$(LABELS) colorlabels
$(MAKER) camera maker
$(MODEL) camera model
$(TITLE) title from metadata
$(CREATOR) creator from metadata
$(PUBLISHER) publisher from metadata
$(RIGHTS) rights from metadata
$(USERNAME) user name
$(PICTURES_FOLDER) pictures folder
$(HOME) home folder
$(DESKTOP) desktop folder

All of the variables support basic string substitution inspired by bash. The details differ however, for example all patterns are treated as simple string comparisons. There is no regex support. For example you can do the following: $(ROLL_NAME/search/replace) . This means if your roll name is e.g. 1970-01-01_RAW_Time-Begins and you use $(ROLL_NAME/RAW/JPG) it will result in a roll name of: 1970-01-01_JPG_Time-Begins

$(var-default) If var is empty, use default .
$(var+alt_value) If var is set, use alt_value , else use empty string.
$(var:offset) var starting from offset . If offset is less than zero it is counted from the back of the string.
$(var:offset:length) At most length characters of var , starting from offset . If offset is less than zero it is counted from the back of var . If length is less than zero it indicates the end of the result, counted from the back of var , and not an actual length.
$(var#pattern) Remove pattern from the start of var .
$(var%pattern) Remove pattern from the end of var .
$(var/pattern/replacement) Replace the first occurrence of pattern in var with replacement . If replacement is empty then pattern will be removed.
$(var//pattern/replacement) Replace all occurrences of pattern in var with replacement . If replacement is empty then pattern will be removed.
$(var/#pattern/replacement) If var starts with pattern then pattern is replaced with replacement .
$(var/%pattern/replacement) If var ends with pattern then pattern is replaced with replacement .
$(var^) Make the first character of var uppercase.
$(var^^) Make all characters of var uppercase.
$(var,) Make the first character of var lowercase.
$(var,,) Make all characters of var lowercase.
output directory

Pressing button opens a dialog to select the parent directory for export.

on conflict

If this option is set to create unique filename darktable automatically chooses a unique new file name in case of naming conflicts with existing files. The alternative overwrite setting forces darktable to exactly adhere to the selected filename template, overwriting any existing files on conflict. This option gets reset to create unique filename after each export job in order to protect you from accidental data loss.

file format

darktable can export to various file formats. Depending on the output format you can define additional parameters. For some formats you need to decide on the desired bit depth and the compression method, respectively.

For some export formats like JPEG you can define an output quality. Higher values will lead to larger file sizes. The default quality 95 is a good setting for very high quality exports, e.g. for archiving or printing purposes. If you need a good compromise between size and quality, e.g. for online image display or uploads, you should consider a value of 90 instead.

If the file format supports embedded metadata, like JPEG, JPEG2000 and TIFF, darktable will try to store the history stack as XMP tags within the output file. This information can later be used to reconstruct your parameters and settings that have produced the exported image (see Section 2.3.7, “History stack”).

Caution: for various reasons embedding XMP tags into output files may fail without notice, eg. if certain size limits are exceeded. Users are therefore advised to not rely their backup strategy on this feature. To back up your data make sure to save your input (raw) file as well as all of darktable's XMP sidecar files.

If you don't want to distribute history stack data with your images, there are various tools to delete embedded XMP tags. As an example you can use the program exiftool with:

Exiftool -XMP:all=   image.jpg

max size

Set the maximum width and height of the output images in pixels. Set both to a value of 0 to export with the original dimensions (after cropping). If the values exceed the original dimensions darktable will either export with the original dimensions or perform an upscaling step, depending on the setting of the following parameter.

Caution: it's a frequent pitfall to accidentally put low values, like 1 or 10, in these fields, causing darktable to produce miniature output files. You might think darktable's output is broken, but in fact it only generated what you asked for.

allow upscaling

If set to yes darktable will perform an upscaling step in case the user defined maximum width and height exceed the original dimensions. If set to no the exported image's dimensions will not exceed the original ones (after cropping).


This defines the output color profile. Select image settings if you want the settings in the output color profile (see Section, “Output color profile”) module of the individual images to take precedence.


This option lets you define the intent, i.e. the way darktable will deal with out-of-gamut colors. See Section, “Rendering intent” for a more detailed description of the available options.


This option lets you choose a style, i.e. a collection of history stack items, which darktable combines with the existing history stack to generate the output image. These history items are only added temporarily; the original history stack is not overwritten. You can use this feature to add processing steps and parameters that you want to be applied specifically to images before export, e.g. you may define a style that adds a stronger level of sharpening when you produce scaled-down JPEG files for the internet or add a certain level of exposure compensation to all of your output images. Learn more about styles in Section 2.3.8, “Styles”, and Section 3.3.3, “History stack”.


When applying a style during export this option defines whether the history stack items of that style replace the original history stack of the image or are appended to it. Technically speaking, in append mode history stack items of the style will constitute separate instances of the respective modules on top of any existing ones (see also Section 3.2.4, “Multiple instances”). As a consequence the original history stack will fully remain in effect with the new items being applied additionally. This way you can apply an overall adjustment (e.g. exposure) to a bunch of exported images while respecting the settings of each individual image.


Pressing this button starts a background job to export all selected images. A bar at the bottom of the left side panel displays the progress. Furthermore a notification message pops up reporting the export progress. You may click on the pop-up to make it disappear. You may abort the export job by clicking on the icon located close to the progress bar.