Використання Darktable зі сценарію Lua
Попередження: ця функція дуже експериментальна. Відомо, що кілька елементів ще не працюють у бібліотечному режимі. Настійно рекомендується ретельне тестування.
Інтерфейс Lua дозволяє використовувати Darktable з будь-якого сценарію Lua. Це завантажить Darktable як бібліотеку та надасть вам більшість API Lua (Darktable налаштовано без відображення інтерфейсу, тому функції, що стосуються інтерфейсу користувача, недоступні).
Наприклад, наступна програма надрукує список усіх зображень у вашій бібліотеці:
#!/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
Зверніть увагу на третій рядок, який вказує на розташування файлу libdarktable.so
.
Також зверніть увагу, що виклик require
повертає функцію, яку можна викликати лише один раз і дозволяє встановити параметр командного рядка Darktable. Параметр :memory:
для --library
тут корисний, якщо ви не хочете працювати над своєю особистою бібліотекою.