Arbeiten mit darktable von einem Lua Skript

Warnung: Diese Möglichkeit ist sehr experimentell. Es ist bekannt, dass mehrere Elemente bis jetzt im Library Modus nicht funktionieren. Ein vorsichtiges Testen ist sehr empfohlen.

Die Lua Schnittstelle erlaubt es dir, darktable von jedem Lua Skript aus zu nutzen. Dadurch wird darktable als Library geladen und das Meiste der Lua API angeboten (darktable ist ohne Titelzeile, so dass die Funktionen, die sich auf die Beutzerschnittstelle beziehen, nicht vorhanden sind)

Als Beispiel, das folgende Programm wird eine Liste aller Bilder in deiner Bibliothek ausdrucken:

#!/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

Beachte die dritte Linie, die auf die Datei von libdarktable.so zeigt.

Beachte auch, dass der Aufruf, um Returns zu verlangen, eine Funktion, die nur einmal aufgerufen werden kann und es dir erlaubt, die darktable Kommandozeilen Parameter zu setzen. Der Parameter :memory: zu --library ist hier sehr nützlich, wenn du nicht mit deiner persönlichen Library arbeiten willst.

translations