użycie darktable ze skryptu lua

Uwaga: Ta opcja jest mocno eksperymentalna. Wiemy o kilku elementach, które wciąż nie działają dobrze w trybie biblioteki. Zalecamy ostrożne testy.

Interfejs lua pozwala na korzystanie z darktable z dowolnego skryptu lua. Spowoduje to załadowanie darktable jako biblioteki i udostępnienie większości API lua (darktable jest skonfigurowane bez plików nagłówkowych, więc funkcje interfejsu użytkownika nie są dostępne).

Poniższy program zaprezentuje przykładowo wypisanie listy wszystkich zdjęć z Twojej biblioteki:

#!/usr/bin/env lua
package = require "package"
package.cpath=package.cpath..";./lib/darktable/lib?.so"

dt = require("darktable")(
"--library", "./library.db",
"--datadir", "./share/darktable",
"--moduledir", "./lib/darktable",
"--configdir", "./configdir",
"--cachedir","cachedir",
"--g-fatal-warnings")

require("darktable.debug")

for k,v in ipairs(dt.database) do
   print(tostring(v))
end

Zwróć uwagę na trzecią linię, wskazującą lokalizację pliku libdarktable.so.

Zauważ również, że wywołanie require zwraca funkcję, która musi być wywołana tylko raz i pozwala na ustawienie parametru linii poleceń darktable. Wartość :memory: parametru --library przydaje się, kiedy nie chcesz pracować na swojej osobistej bibliotece.