darktable page lede image
darktable page lede image

Rozdział 1. Przegląd

darktable to otwartoźródłowe oprogramowanie do organizacji pracy ze zdjęciami, edytor obrazów i wywoływania plików RAW, wirtualny stół podświetlany i ciemnia dla fotografów.

Program zarządza bazą cyfrowych negatywów, importowanych z różnych źródeł (włączając w to robienie zdjęć w trybie tetheringu), pozwala na ich podgląd na powiększanym stole podświetlanym, dostarcza bogatą kolekcję modułów do wywoływania zdjęć, umożliwia eksport wyników pracy do standardowych mediów fizycznych bądź cyfrowych, a także pozwala na ich prezentację w postaci pokazu slajdów. Wszystkie te operacje wykonywane są w schematach, uwzględniających pełne zarządzanie kolorem.

Funkcje programu
  • darktable działa na GNU/Linux / GTK3, Mac OS X / macportach, systemach BSD, Windows oraz na Solaris 11 / GTK3.

  • Pełna, niedestruktywna edycja.

  • Wszystkie podstawowe funkcje darktable operują na czterech 32-bitowych, zmiennoprzecinkowych buforach pikseli dla większej dokładności przetwarzania, zapobiegając bandingowi i color break'om.

  • darktable mocno wykorzystuje instrukcje Streaming SIMD Extensions 2 (SSE2) procesora w celu przyspieszenia obróbki. W zasadzie darktable wymaga albo procesora x86 zgodnego z SSE2, albo procesora ARM64.

  • Akceleracja GPU dzięki OpenCL (wykrywanie i włączanie w trakcie pracy).

  • Moduły przetwarzania obrazu operują w przestrzeni kolorów CIELab i kilku innych, opartych o RGB – dużo szerszych, niż gamut nowoczesnych monitorów, drukarek czy nawet ludzkiego wzroku.

  • Pełne zarządzanie kolorem na wyświetlaczu z opcjami kontroli ekranowej i sprawdzania zakresu kolorów. Wbudowane wsparcie dla profili ICC oraz eksport do sRGB, Adobe RGB, XYZ oraz liniowego RGB.

  • Moduł Wybór pozwala na wykonywanie elastycznych zapytań do bazy danych, wyszukiwanie obrazów poprzez etykiety, ranking (gwiazdki), kolorowe etykiety i wiele innych. Filtrowanie i sortowanie kolekcji w obrębie jednego zapytania czy proste tagowanie poprzez powiązane etykiety są użytecznymi narzędziami w codziennej pracy.

  • Import wielu formatów plików obrazów, standardowych, RAW oraz o dużej rozpiętości tonalnej (np. CR2, DNG, JPEG, OpenEXR, PFM).

  • darktable dzięki wielopoziomowemu cache'owi programowemu posiada bezopóźnieniowy, pełnoekranowy, powiększalny interfejs użytkownika.

  • Robienie zdjęć z komputera (ang. tethering).

  • darktable potrafi eksportować wywołane zdjęcia jako obrazy o niskim bądź wysokim zakresie dynamicznym (JPEG, PNG, TIFF, PDF, PFM, EXR) na dysk lokalny, do albumów web, szablonów LaTeX i załączników email, a także do prostych html-owych galerii obrazów.

  • darktable do zapisu metadanych i ustawień przetwarzania używa zarówno plików pobocznych XMP, jak i szybkiej bazy danych. Wszystkie dane Exif są czytane i zapisywane przy użyciu libexiv2.

  • darktable udostępnia ponad 60 modułów do operacji na obrazie, począwszy od podstawowych i drobnych korekt zdjęć, przez zmiany wartości tonalnych, manipulacji kolorem, na efektach artystycznych kończąc.

  • Większość modułów można wywołać wielokrotnie, kontrolując kolejność ich zastosowania.

  • Wszystkomająca maska daje możliwość precyzyjnej kontroli nad wpływem modułu na całość lub część obrazu. Według wyboru można rysować maskę przy użyciu różnych kształtów bądź zdefiniować maskę parametryczną, bazującą na wartościach poszczególnych pikseli.

  • Elastyczność masek została rozszerzona o możliwości stosowania ich w różnych trybach mieszania i ponownego ich użycia w innych modułach.

  • darktable udostępnia wysokowydajny, choć prosty jednoklikowy odszumiacz, który po prostu działa. Został on zaprojektowany jako moduł, którego działanie zależy tylko od modelu aparatu i ustawień ISO. Baza profili zawiera parametry ponad 200 popularnych modeli aparatów.

  • darktable udostępnia uniwersalny interfejs skryptowy, pozwalający na rozszerzanie funkcjonalności przy pomocy języka skryptowego Lua.

  • Obrazy zawierające współrzędne geograficzne mogą być wyświetlone na mapie, pochodzącej od różnych dostawców według uznania. Koordynaty mogą być przypisane do obrazów poprzez ich ręczne umieszczenie na mapie lub poprzez automatyczne zastosowanie danych śledzących GPX.

  • darktable posiada wbudowaną opcję pokazu slajdów, pozwalającą na wyświetlenie kolekcji obrazów w trybie pełnoekranowym.

  • Wszechstronny moduł drukujący pozwala na wysyłanie obrazów do drukarki ze wsparciem pełnego zarządzania kolorem.

1.1. Uruchomienie programu

W skład darktable wchodzą dwa główne pliki binarne: standardowa aplikacja GUI, uruchamiana poprzez wywołanie darktable oraz wariant z interfejsem linii poleceń, uruchamiany poprzez darktable-cli. Pakiet zawiera również inne binarki do zadań specjalnych.

1.1.1. Polecenie darktable

To polecenie uruchamia darktable ze standardowym interfejsem użytkownika oraz pełną funkcjonalnością; jest to standardowy sposób korzystania z darktable.

darktable może być uruchamiane z następującymi parametrami z linii poleceń:

darktable [-d {all,cache,camctl,camsupport,control,dev,
                fswatch,imageio,input,ioporder,lighttable,lua,masks,
                memory,nan,opencl,params,perf,pwstorage,print,signal,sql,undo}]
          [<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>]

Wszystkie parametry są opcjonalne; w większości przypadków można uruchomić darktable bez dodatkowych parametrów, a program dobierze sensowne wartości domyślne.

-d

Ta opcja przekierowuje informacje debuggera na terminal. darktable składa się z kilku podsystemów i możesz oddzielnie aktywować debugowanie każdego z nich. Możesz użyć tej opcji wielokrotnie, jeśli potrzebujesz informacji debuggera z wielu systemów.

<input file>|<image folder>

Można podać nazwę pliku obrazu lub folderu zawierającego obrazy. W przypadku podania nazwy pliku, darktable rozpocznie pracę w trybie ciemni z tym plikiem. W przypadku podania folderu, darktable uruchomi się w widoku stołu podświetlanego z zawartością folderu jako bieżącą kolekcją.

--version

Ta opcja wyświetla numer używanej wersji darktable, notki o prawach autorskich oraz parę innych użytecznych informacji, po czym kończy działanie.

--disable-opencl

Opcja zapobiega inicjalizacji subsystemu OpenCL. Do użycia w sytuacji, kiedy darktable nie uruchamia się z powodu błędnej implementacji OpenCL.

--library <library file>

Dla szybkiego dostępu darktable przechowuje informacje o obrazach w bazie danych sqlite. Domyślną lokalizacją pliku bazy jest $HOME/.config/darktable/library.db. Możesz podać inną lokalizację, kiedy np. chcesz eksperymentować bez zmian w oryginalnej library.db. Jeśli podana baza nie istnieje, zostanie utworzona. Jako parametr możesz podać również :memory:; w takim wypadku baza zostanie utworzona w pamięci systemu, a wszelkie zmiany po zakończeniu pracy zostaną utracone.

Podczas startu darktable program blokuje bibliotekę dla aktualnego użytkownika. Robi to poprzez zapis identyfikatora procesu (PID) do pliku blokady <plik biblioteki>.lock obok pliku biblioteki. Jeśli darktable napotka istniejący plik blokady dla biblioteki, natychmiast kończy działanie.

--datadir <data directory>

Ta opcja definiuje katalog przechowywania danych wykonania darktable. Domyślne miejsce zależy od instalacji. Najczęściej jest to /opt/darktable/share/darktable/ lub /usr/share/darktable/.

--moduledir <module directory>

darktable posiada budowę modułową, moduły tworzone są jako biblioteki współdzielone do załadowania podczas pracy programu. W opcji tej można wskazać darktable, gdzie ma szukać bibliotek współdzielonych. Domyślne położenie zależy od konkretnej instalacji; na ogół jest to /opt/darktable/lib64/darktable/ lub /usr/lib64/darktable/.

--tmpdir <tmp directory>

Miejsce, w którym darktable przechowuje pliki tymczasowe. Jeśli ta opcja nie została podana, darktable użyje ustawień domyślnych.

--configdir <config directory>

Ta opcja określa katalog, w którym darktable przechowuje konfigurację dla każdego użytkownika. Domyślnie jest to $HOME/.config/darktable/.

--cachedir <cache directory>

darktable przechowuje w pamięci podręcznej (cache) miniatury obrazów dla szybkiego podglądu obrazów i prekompilowane binaria OpenCL dla szybkiego startu. Cache domyślnie znajduje się w $HOME/.cache/darktable/. Równolegle może istnieć wiele pamięci podręcznych miniatur – po jednej dla każdego pliku biblioteki.

--localedir <locale directory>

Miejsce, w którym darktable będzie szukał plików specyficznych dla poszczególnych języków. Położenie domyślne zależy od konkretnej instalacji. Typowe miejsca to /opt/darktable/share/locale/ and /usr/share/locale/.

--luacmd <lua command>

Ciąg znaków, zawierający komendy języka lua do wykonania po inicjalizacji. Komendy te zostaną wykonane po pliku luarc.

Jeżeli obsługa Lua nie została wkompilowana, ta opcja zostanie zaakceptowana, ale nie spowoduje wykonania żadnej akcji.

--noiseprofiles <noiseprofiles json file>

Plik json, zawierający profile szumu, specyficzne dla aparatu. Jego domyślna lokalizacja zależy od instalacji. Najczęściej jest to /opt/darktable/share/darktable/noiseprofile.json lub /usr/share/darktable/noiseprofile.json.

--conf <key>=<value>

darktable wspiera bogaty zestaw parametrów konfiguracyjnych, definiowanych w darktablerc, znajdującym się w konfiguracyjnym katalogu użytkownika. Tym parametrem nadpiszesz tamte ustawienia, pamiętaj jednak, że nie zostaną one zachowane w darktablerc.

1.1.2. Polecenie darktable-cli

Ten plik binarny uruchamia darktable w wersji z linii poleceń, co pozwala na eksport obrazów.

Ten wariant nie otwiera żadnego ekranu, pracuje wyłącznie w trybie konsoli, bez żadnych środowisk graficznych typu X11, wayland, etc. – ten tryb jest szczególnie użyteczny na serwerach, obsługujących procesy działające w tle.

darktable-cli jest uruchamiany z następującymi parametrami linii poleceń:

darktable-cli <input file>|<image folder>
              [<xmp file>]
              <output file>
              [--width <max width>]
              [--height <max height>]
              [--bpp <bpp>]
              [--hq <0|1|true|false>]
              [--upscale <0|1|true|false>]
              [--style <style name>]
              [--style-overwrite]
              [--verbose]
              [--core <darktable options>]

Należy podać nazwę pliku wejściowego i wyjściowego. Pozostałe parametry są opcjonalne.

<plik wejściowy>

Nazwa pliku wejściowego do wyeksportowania lub nazwa folderu, zawierającego pliki do wyeksportowania.

<plik xmp>

Opcjonalna nazwa pliku pobocznego XMP, zawierającego historię działań do zastosowania przy eksporcie. Bez podania tego pliku darktable poszuka pliku XMP, należącego do pliku(ów) wejściowego.

<plik wyjściowy>

Nazwa pliku wyjściowego. darktable określa format pliku wyjściowego według jego rozszerzenia. W nazwie pliku wyjściowego można również użyć wszystkich zmiennych, dostępnych w module eksportu darktable (p. Sekcja 2.3.14, „Eksportuj zaznaczone”). Z oczywistych względów nazwa jest obowiązkowa, jeśli używasz aplikacji w folderze, zawierającym wiele plików.

--width <max width>

Ten opcjonalny parametr pozwala ograniczyć szerokość eksportowanego obrazka do podanej liczby pikseli.

--height <maks. wysokość>

Ten opcjonalny parametr pozwala ograniczyć wysokość eksportowanego obrazka do podanej liczby pikseli.

--bpp <bpp>

Parametr opcjonalny do definiowania głebi bitowej eksportowanego obrazu; dopuszczalne wartości zależą od formatu pliku. Aktualnie ta opcja jeszcze nie działa. Jeśli potrzebujesz zdefiniować głębię bitową, użyj następującego myku:

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

gdzie <FORMAT> jest nazwą żądanego formatu wyjściowego.

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

Flaga określająca, czy stosować wysokiej jakości resampling przy eksporcie (p. Sekcja 8.4, „Ciemnia”). Domyślnie prawda.

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

Flaga określająca, czy zezwolić na upscaling przy eksporcie. Domyślnie fałsz.

--style <style name>

Określa nazwę stylu do zastosowania podczas eksportu. Jeśli określasz styl, musisz również określić ścieżkę do katalogu konfiguracyjnego darktable (np. --core --configdir ~/.config/darktable). Domyślnie nie definiuje się żadnego stylu.

--style-overwrite

Podany styl nadpisuje historię operacji; nie jest dołączany do niej.

--verbose

Włącza rozgadane wyjście.

--core <opcje darktable>

Wszystkie parametry linii poleceń, poprzedzone przedrostkiem --core, są przekazywane do jądra darktable i obsługwane jako parametry standardowe. Patrz również Sekcja 1.1.1, „Polecenie darktable.

1.1.3. Polecenie darktable-generate-cache

Ten program aktualizuje podręczną pamięć miniaturek darktable. Można go uruchomić w tle w celu dogenerowania brakujących miniaturek, kiedy komputer jest bezczynny.

darktable-generate-cache jest wywoływany z następującymi parametrami linii poleceń:

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

Wszystkie parametry są opcjonalne. Jeśli nie podano parametrów, darktable-generate-cache użyje sensownych wartości domyślnych.

-h, --help

Wypisuje użyteczne informacje i kończy pracę.

--version

Wyświetla informacje o prawach autorskich i wersji, po czym kończy działanie.

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

darktable obsługuje i przechowuje miniaturki w max. ośmiu różnych rozdzielczościach na pojedynczy obraz. Te parametry określają maksymalną rozdzielczość do wygenerowania i domyślnie zawierają się w przedziale 0-2. Zazwyczaj nie ma potrzeby generować z tej opcji wszystkich dostępnych rozdzielczości; brakujące zostaną automatycznie dogenerowane w razie potrzeby. W razie żądania wygenerowania wielu rozdzielczości naraz, obrazy o niższej rozdzielczości są tworzone z obrazów o wyższej.

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

Określa zakres wewnętrznych identyfikatorów obrazów do pracy z bazą. Jeśli nie podano, darktable-generate-cache przetworzy wszystkie obrazy z całej kolekcji.

--core <opcje darktable>

Wszystkie parametry linii poleceń, poprzedzone przedrostkiem --core, są przekazywane do jądra darktable i obsługwane jako parametry standardowe. Patrz również Sekcja 1.1.1, „Polecenie darktable.

1.1.4. Polecenie darktable-chart

Ten program użytkowy służy do tworzenia stylów z par zdjęć RAW i JPEG stworzonych w aparacie. Więcej szczegółów zawiera Sekcja 10.3, „Użycie darktable-chart.

darktable-chart może być albo uruchamiany z interfejsem graficznym, albo jako program z linii poleceń.

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

Wszystkie parametry są opcjonalne, jednak jeśli chcesz określić drugą nazwę pliku, musisz określić pierwszą, itd. Uruchomienie darktable-chart w ten sposób otwiera specjalny interfejs graficzny (p. Sekcja 10.3, „Użycie darktable-chart).

--help

Wypisuje użyteczne informacje i kończy pracę.

<input Lab pfm file>

Otwiera aplikację z podanym plikiem jako zdjęciem źródłowym. Plik wejściowy musi być w formacie Lab Portable Float Map.

<cht file>

Określa plik wykresu, opisujący układ użytego wykresu odwołań do koloru.

<reference cgats/it8 or Lab pfm file>

Określa wartości referencyjne, podane albo jako wartości zmierzone w standardzie CGATS, albo jako referencyjny obraz w formacie Lab Portable Float Map.

darktable-chart, użyty z linii poleceń, może posłużyć również jako narzędzie do generowania plików stylów darktable z zapisanych uprzednio plików CSV.

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

Wszystkie parametry są obowiązkowe.

<csv file>

Plik CSV, zapisany poprzednio z darktable-chart.

<number patches>

Ilość łatek koloru, użytych w ustawieniach tablicy podglądu koloru tworzonego stylu.

<output dtstyle file>

Nazwa tworzonego pliku stylu.

1.1.5. Polecenie darktable-cltest

Program sprawdza istnienie używalnego środowiska OpenCL do wykorzystania przez darktable. Wypisuje informację diagnostyczną, równoważną wywołaniu polecenia darktable -d opencl i kończy działanie.

darktable-cltest jest wywoływany bez parametrów w linii poleceń:

darktable-cltest

1.1.6. Polecenie darktable-cmstest

Ta aplikacja (tylko Linux) sprawdza właściwą konfigurację podsystemu zarządzania kolorem i wyświetla parę użytecznych informacji o zainstalowanych profilach monitora.

darktable-cmstest jest wywoływany bez parametrów z linii poleceń:

darktable-cmstest