2014-04-08 21 views
0

我有cross posted on the Adobe Forums用updateExportSettings覆盖图像宽度

编写我的第一个lightroom插件,我创建了一个minimal example,它应该设置照片宽度here并包含在下面。不过,我无法让图像成为指定的400 x 400。

ExportFilterProvider400.lua:

local LrView = import 'LrView' 
local bind = LrView.bind 
-------------------------------------------------------------------------------- 
-- This function will create the section displayed on the export dialog 
-- when this filter is added to the export session. 

local function sectionForFilterInDialog(f, propertyTable) 
    return { 
    title = LOC "$$$/SDK/MetaExportFilter/SectionTitle=400x400 Filter", 
    } 
end 

-------------------------------------------------------------------------------- 
-- Example on updating export settings 
local function updateExportSettings(exportSettings) 
    exportSettings.LR_size_maxHeight = 400 
    exportSettings.LR_size_maxWidth = 400 
    exportSettings.LR_size_doConstrain = true 
end 

-------------------------------------------------------------------------------- 
return { 
sectionForFilterInDialog = sectionForFilterInDialog, 
updateExportSettings  = updateExportSettings , --Does this work 
} 

Info.lua:

return { 
    LrSdkVersion  = 3.0, 
    LrSdkMinimumVersion = 1.3, 
    LrPluginName  = "400x400 Export", 
    LrToolkitIdentifier = 'sample.export400x400', 

    LrExportFilterProvider = { 
    title = LOC "$$$/SDK/MetaExportFilter/Sample=400x400 Size", -- the string that appears in the export filter section of the export dialog in LR 
    file = 'ExportFilterProvider400.lua', -- name of the file containing the filter definition script 
    id = "metadata1", -- unique identifier for export filter 
    }, 

    VERSION = { major=5, minor=0, revision=0, build=907681, }, 
} 

Adob​​e的Lightroom可以加载插件,并把它添加到导出会话,但updateExportSettings似乎没有生效。在Lightroom 5.3中测试。

回答

0

Adob​​e SDK论坛上的Rob Cole指出'Export Service providers'使用updateExportSettings来预设导出设置。

'出口过滤提供商'应使用renditionOptions作为postProcessRenderedPhotos的一部分。

一些试验和错误我有这个小例子之后, Info.lua(无变化):

return { 
    LrSdkVersion  = 3.0, 
    LrSdkMinimumVersion = 1.3, -- minimum SDK version required by this plugin 
    LrPluginName  = "400x400 Export", 
    LrToolkitIdentifier = 'sample.export400x400', 

    LrExportFilterProvider = { 
    title = LOC "$$$/SDK/MetaExportFilter/Sample=400x400 Size", 
    file = 'ExportFilterProvider400.lua', 
    id = "metadata1", -- unique identifier for export filter 
    }, 
    VERSION = { major=5, minor=0, revision=0, build=907681, }, 
} 

ExportFilterProvider400.lua

local LrView = import 'LrView' 
local bind = LrView.bind 

local function sectionForFilterInDialog(f, propertyTable) 
    logger:info('Called sectionForFilterInDialog') 
    return { 
    title = LOC "$$$/SDK/MetaExportFilter/SectionTitle=400x400 Filter", 
    } 
end 

local function postProcessRenderedPhotos(functionContext, filterContext) 
    local renditionOptions = { 
    filterSettings = function(renditionToSatisfy, exportSettings) 
     exportSettings.LR_size_maxHeight = 400 
     exportSettings.LR_size_maxWidth = 400 
     exportSettings.LR_size_doConstrain = true 
    end 
    } 

    for sourceRendition, renditionToSatisfy in filterContext:renditions(renditionOptions) do 
    -- Wait for the upstream task to finish its work on this photo. 
    local success, pathOrMessage = sourceRendition:waitForRender() 
    end 
end 
-------------------------------------------------------------------------------- 

return { 
    sectionForFilterInDialog = sectionForFilterInDialog, 
    postProcessRenderedPhotos = postProcessRenderedPhotos, 
}