zmienne
darktable wspiera podstawianie zmiennych w części modułów i ustawień. Takimi obszarami są na przykład:
-
Tworzenie nazw plików w module eksportu
-
Zawartość linii informacji o obrazie
-
Wyświetlanie informacji o obrazie w nakładkach i podpowiedziach stołu podświetlanego (patrz ustawienia > stół podświetlany)
-
Umieszczanie tekstu na zdjęciu w module znaku wodnego
🔗dostępne zmienne
Dostępne są poniższe zmienne, choć niektóre mogą nie być dostępne w pewnych kontekstach:
$(ROLL.NAME) film 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 number
$(VERSION.IF_MULTI) same as $(VERSION) but null string if only one version exists
$(VERSION.NAME) version name from metadata
$(DARKTABLE.VERSION) the version of the running darktable instance
$(DARKTABLE.NAME) name of darktable
$(SEQUENCE[n,m]) a sequence number within an export job with n digits and starting with m
parameters are optional, default is [4,1]
$(WIDTH.SENSOR) width of RAW data in pixels before RAW crop
$(HEIGHT.SENSOR) height of RAW data in pixels before RAW crop
$(WIDTH.RAW) width of RAW data in pixels after RAW crop
$(HEIGHT.RAW) height of RAW data in pixels after RAW crop
$(WIDTH.CROP) image width in pixels at the end of the pixelpipe, but before export resize
$(HEIGHT.CROP) image height in pixels at the end of the pixelpipe, but before export resize
$(WIDTH.EXPORT) image width in pixels at the end of the pixelpipe and after export resize
$(HEIGHT.EXPORT) image height in pixels at the end of the pixelpipe and after export resize
$(WIDTH.MAX) maximum width entered in export module
$(HEIGHT.MAX) maximum height entered in export module
$(YEAR) year at date of import/export
$(YEAR.SHORT) two-digit year at date of import/export
$(MONTH) numeric (1-12) month at date of import/export
$(MONTH.LONG) full month name at date of import/export
$(MONTH.SHORT) abbreviated month name at date of import/export
$(DAY) day at date of import/export
$(HOUR) hour at time of import/export
$(MINUTE) minute at time of import/export
$(SECOND) second at time of import/export
$(MSEC) millisecond at time of import/export
$(EXIF.YEAR) Exif year
$(EXIF.YEAR.SHORT) Exif year, two-digit version
$(EXIF.MONTH) Exif month, numeric
$(EXIF.MONTH.LONG) Exif month, full name
$(EXIF.MONTH.SHORT) Exif month, abbreviated name
$(EXIF.DAY) Exif day
$(EXIF.HOUR) Exif hour
$(EXIF.MINUTE) Exif minute
$(EXIF.SECOND) Exif second
$(EXIF.MSEC) Exif millisecond
$(EXIF.DATE.REGIONAL) Exif date using user's preferred regional date format
$(EXIF.TIME.REGIONAL) Exif time using user's preferred regional date format
$(EXIF.ISO) Exif ISO value
$(EXIF.EXPOSURE) Exif exposure
$(EXIF.EXPOSURE.BIAS) Exif exposure bias
$(EXIF.EXPOSURE.PROGRAM) Exif exposure program set in camera
$(EXIF.APERTURE) Exif aperture
$(EXIF.CROP_FACTOR) Exif crop factor
$(EXIF.FLASH) Exif flash setting
$(EXIF.FLASH.ICON) flash symbol if Exif information says flash was fired, empty string if not
$(EXIF.FOCAL.LENGTH) Exif focal length
$(EXIF.FOCAL.LENGTH.EQUIV) Exif 35 mm equivalent focal length
$(EXIF.FOCUS.DISTANCE) Exif focus distance
$(EXIF.LENS) Exif lens name
$(EXIF.MAKER) Exif camera maker
$(EXIF.METERING) Exif metering mode
$(EXIF.MODEL) Exif camera model
$(EXIF.WHITEBALANCE) Exif white balance set in camera
$(IMAGE.EXIF) basic exposure information from Exif data (aperture, exposure, ISO)
$(IMAGE.ID) the image id (note that this will be 0 during copy&import)
$(IMAGE.ID[n]) the image id (note that this will be 0 during copy&import), zero-padded to n digits
$(IMAGE.ID.NEXT) the next image id to be assigned (can be used during copy&import)
$(IMAGE.ID.NEXT[n]) the next image id to be assigned (can be used during copy&import), zero-padded to n digits
$(IMAGE.TAGS) tags list (Xmp.dc.Subject), with any hierarchy flattened
$(IMAGE.TAGS.HIERARCHY) tags list (Xmp.dc.Subject), preserving hierarchy
$(LONGITUDE) longitude
$(LATITUDE) latitude
$(ELEVATION) elevation
$(GPS.ELEVATION) elevation
$(GPS.LATITUDE) latitude
$(GPS.LONGITUDE) longitude
$(GPS.LOCATION) latitude, longitude, and elevation (omitting any values which are not set)
$(GPS.LOCATION.ICON) symbol to indicate that geolocation information is present, empty string if not
$(STARS) star rating (text only)
$(RATING.ICONS) star rating (using star characters)
$(LABELS) colorlabels (color labels as text)
$(LABELS.ICONS) colorlabels (color labels as icons)
$(MAKER) camera maker
$(MODEL) camera model
$(LENS) lens
$(TITLE) title from metadata
$(DESCRIPTION) description from metadata
$(CREATOR) creator from metadata
$(PUBLISHER) publisher from metadata
$(RIGHTS) rights from metadata
$(TAGS) tags list (Xmp.dc.Subject)
$(CATEGORY[n,category]) tag name of level n [0,9] of selected category (or tag)
$(SIDECAR_TXT) content of the text sidecar file (if any)
$(FOLDER.PICTURES) pictures folder
$(FOLDER.HOME) home folder
$(FOLDER.DESKTOP) desktop folder
$(OPENCL.ACTIVATED) whether OpenCL is activated
$(USERNAME) user name defined by OS
$(NL) newline character
$(JOBCODE) internal jobcode of current job
🔗zamiana łańcuchów znaków
Wszystkie zmienne wspierają podstawową zamianę łańcuchów znakowych, inspirowaną językiem powłoki bash, jednak różnią się w szczegółach.
Wszystkie wzorce traktowane są jako proste porównania łańcuchów znakowych. Wyrażenia regularne nie są wspierane.
Poniżej znajduje się lista funkcji zamieniających łańcuchy znakowe, gdzie ‘var’ jest jedną ze zmiennych, opisanych poniżej:
$(zmienna-default) Jeśli zmienna jest pusta, zwraca „default"
Jako wartości "default" można użyć innej zmiennej, np.
$(WIDTH.CROP-$(WIDTH.RAW))
$(zmienna+alt_wartość) Jeśli zmienna ma wartość, zwraca „alt_wartość", w przeciwnym razie pusty łańcuch.
$(zmienna:offset) Zwraca zmienną od pozycji offset.
Jeśli offset jest ujemny, liczy pozycję od końca łańcucha.
$(zmienna:offset:dl) Zwraca zmienną o maksymalnej długości dl, począwszy od pozycji offset.
Jeśli offset jest ujemny, dl liczona jest od końca zmiennej.
Jeśli dl jest ujemna, wskazuje koniec wyniku,
licząc od końca zmiennej, a nie faktyczną długość.
$(zmienna#wzor) Usuwa „wzor" z początku zmiennej.
$(zmienna%wzor) Usuwa „wzor" z końca zmiennej.
$(zmienna/wzor/zamiennik) Zamienia pierwsze wystąpienie „wzoru” w zmiennej na „zamiennik”.
Jeśli „zamiennik” jest pusty, „wzór” zostanie usunięty.
$(zmienna//wzor/zamiennik) Zamienia wszystkie wystąpienia „wzoru” w zmiennej na „zamiennik”.
Jeśli „zamiennik” jest pusty, „wzór” zostanie usunięty.
$(zmienna/#wzor/zamiennik) Jeśli zmienna zaczyna się „wzorem”, to „wzór” zostanie zastąpiony „zamiennikiem”.
$(zmienna/%wzor/zamiennik) Jeśli zmienna kończy się „wzorem”, to „wzór” zostanie zastąpiony „zamiennikiem”.
$(zmienna^) Zamienia pierwszy znak zmiennej na dużą literę.
$(zmienna^^) Zamienia wszystkie znaki zmiennej na duże litery.
$(zmienna,) Zamienia pierwszy znak zmiennej na małą literę.
$(zmienna,,) Zamienia wszystkie znaki zmiennej na małe litery.
🔗formatowanie
Wzorce informacji o obrazie obsługują znaczniki markup. Na przykład dodanie poniższego spowoduje wyraźne ostrzeżenie (duży, czerwony, pogrubiony tekst), gdy inicjalizacja OpenCL nie powiedzie się:
<span alpha='1%'>$(OPENCL_ACTIVATED/no/<span foreground='red' weight='heavy' size='xx-large' alpha='100%'>OPENCL ACTIVATION FAILED</span>$(NL))</span>