esportare immagini con lua
Fino ad ora abbiamo imparato come usare lua per adattare darktable al nostro particolare flusso di lavoro. Guardiamo ora a come usare lua per esportare facilmente le immagini verso un servizio online. Se sei in grado di caricare un’immagine verso un servizio utilizzando la linea di comando, allora puoi usare lua per integrarlo nell’interfaccia utente di darktable.
Nel prossimo esempio useremo lua per esportare via scp
. Una nuova destinazione apparire nella UI di darktable per esportare immagini verso un obiettivo remoto usando il meccanismo di copia in ssh
.
darktable = require "darktable"
darktable.preferences.register("scp_export","export_path",
"string","target SCP path",
"Complete path to copy to. Can include user and hostname","")
darktable.register_storage("scp_export","Export via scp",
function( storage, image, format, filename,
number, total, high_quality, extra_data)
if not darktable.control.execute("scp "..filename.." "..
darktable.preferences.read("scp_export",
"export_path","string")) then
darktable.print_error("scp failed for "..tostring(image))
end
end)
darktable.preferences.register
will add a new preference to darktable’s preferences menu, scp_export
and export_path
allow us to uniquely identify our preference. These fields are reused when we read the value of the preference. The string
field tells the lua engine that the preference is a string. It could also be an integer, a filename or any of the types detailed in the API manual relating to types_lua_pref_type
. We then have the label for the preference in the preference menu, the tooltip when hovering over the value and a default value.
darktable.register_storage
è la chiamata che registra una nuova destinazione. Il primo argomento è il nome della destinazione, il secondo è l’etichetta che verrà mostrata nella UI e l’ultimo è la funzione da chiamare per ciascuna immagine. Questa funzione ha moti parametri, ma filename
è l’unico che usiamo in questo esempio. Contiene il nome del file temporaneo dove l’immagine è stata esportata dal motore di darktable.
Questo codice funziona ma ha un paio di limitazione. Del resto è solo un semplice esempio:
-
Usiamo le preferenze per configurare il percorso di destinazione. Sarebbe carino aggiungere un elemento nella UI dell’esportazione in darktable. Dettaglieremo come farlo nella prossima sezione.
-
Non controlliamo il valore di ritorno di
scp
. Questo comando potrebbe fallire, in particolare se l’utente non ha impostato le giuste preferenze. -
Lo script non può leggere l’input dall’utente. Il comando remoto
scp
deve essere senza password –scp
non può avere facilmente una password, quindi lo lasceremo così com’è. -
Non viene visualizzato alcun messaggio una volta che l’esempio è finito, solo la barra di progresso in basso a sinistra comunica all’utente che il lavoro è completo.
-
We use
darktable.control.execute
to call an external program. The normalos.execute
would block other lua codes from happening.
translations
- English: exporting images with lua
- Français: Exporter des images avec Lua
- German: Bilder mit Lua exportieren
- Español: exportar imágenes con lua
- Polish: eksport zdjęć przy użyciu lua
- Português: exportar imagens com lua
- Ukrainian: Експортування зображень за допомогою Lua
- Dutch: afbeeldingen exporteren met lua