використання 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 тут корисний, якщо ви не хочете працювати над своєю особистою бібліотекою.

Translations