Utiliser darktable depuis un script Lua

Attention : Cette fonctionnalité est très expérimentale. Il est connu que plusieurs éléments ne fonctionnent pas encore en mode bibliothèque. Des tests prudents sont hautement recommandés.

L’interface Lua vous permet d’utiliser darktable à partir de n’importe quel script Lua. Cela charge darktable en tant que bibliothèque et vous fournit une grande part de l’API Lua (comme darktable est configuré sans interface utilisateur les fonctions correspondantes ne sont pas disponibles).

Par exemple, le programme suivant écrit la liste de toutes les images dans votre bibliothèque.

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

Notez la troisième ligne qui pointe vers l’emplacement du fichier libdarktable.so.

Notez également que l’appel require renvoie une fonction qui ne peut être appelée qu’une seule fois et vous permet de définir les paramètres de la ligne de commande de darktable. Le paramètre :memory: de --library est utile ici si vous ne voulez pas travailler sur votre bibliothèque personnelle.

translations