exportar imagens com lua
Até agora, aprendemos a usar o lua para adaptar o darktable ao nosso fluxo de trabalho em particular. Vejamos agora como usar o lua para exportar facilmente as imagens para um serviço online. Se você puder carregar uma imagem para um serviço via linha de comando, então você pode usar o lua para integrar isto à interface do usuário do darktable.
No próximo exemplo, usaremos o lua para exportar via scp
. Aparecerá um novo tipo de armazenamento na interface do usuário do darktable que exportará as imagens para um alvo remoto por meio do mecanismo de cópia em ssh
.
darktable = require “darktable”
darktable.preferences.register(“scp_export”,“export_path”,
“string”,“caminho SCP alvo”,
“Complete o caminho para o qual copiar. Pode incluir usuário e nome de máquina”,“”)
darktable.register_storage(“scp_export”,“Exportar 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.
O darktable.register_storage
é a chamada que realmente registra o novo tipo de armazenamento. O primeiro argumento é um nome para o tipo de armazenamento, o segundo é o rótulo que será exibido na interface do usuário e o último é uma função para chamar a cada imagem. Esta função possui muitos parâmetros, mas o filename
é o único que usamos neste exemplo. Ele contém o nome de um arquivo temporário onde a imagem foi exportada pelo motor do darktable.
Este código funcionará, mas tem algumas limitações. Afinal, isto é apenas um exemplo simples:
-
Usamos preferências para configurar um caminho de destino. Seria melhor adicionar um elemento à interface do usuário no darktable. Detalharemos como fazer isso na próxima seção.
-
Não verificamos o valor de retorno de
scp
. Este comando pode falhar, em particular se o usuário não tiver configurado a preferência corretamente. -
Este script não pode ler a entrada do usuário. O
scp
remoto deve usar uma cópia sem senha – não se pode fornecer uma senha aoscp
facilmente, assim nós o deixamos deste jeito. -
Não há nenhuma mensagem exibida uma vez que o script tenha terminado, somente a barra de progresso na parte inferior esquerda diz ao usuário que o trabalho está 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
- Italian: esportare immagini con lua
- Polish: eksport zdjęć przy użyciu lua
- Ukrainian: Експортування зображень за допомогою Lua
- Dutch: afbeeldingen exporteren met lua