切换诺基亚图像SDK的前景和背景:BlendFilter()

本文关键字:背景 BlendFilter 诺基亚 图像 SDK | 更新日期: 2024-09-24 11:18:47

我正在尝试使用诺基亚成像SDK将我使用ChromaKeyFilter的图像混合到背景图像上。我也想在同样的渲染过程中做到这一点。

到目前为止,我得到了这个:

IList<IFilter> finalFilters = new List<IFilter>();
finalFilters.Add(_chromaKeyFilter);
finalFilters.Add(blendFilter);

然而,现在背景图像在上面,当然应该是另一种方式。我能换一下吗?或者这是正确的做法吗?谢谢

切换诺基亚图像SDK的前景和背景:BlendFilter()

在典型情况下,您有一个背景图像(使用一个*ImageSource设置)和一个前景图像(使用另一个*image Source设置)。

ChromaKeyFilter(在FilterEffect中)可以被视为一个修改器,用于在图像中创建透明度。在这里,它被应用于前景,这基本上在设置与像素匹配的地方剪切出透明的孔(零alpha)。

然后在背景上应用BlendFilter(在另一个FilterEffect中),将前景中的FilterEffect作为其ForegroundSource,将前景图像放在其顶部。

尝试使用伪代码示例:

// Foreground chain:
var fg = new BufferImageSource(...);
var fgWithTransparency = new FilterEffect(fg) 
{ 
    Filters = new [] { new ChromaKeyFilter(...) }
};
// Background/compositing chain:
var bg = new BufferImageSource(...);
var bgAndFgComposited = new FilterEffect(bg) 
{ 
    Filters = new [] { new BlendFilter(fgWithTransparency) }
};

如果现在渲染bgFilterEffect,则会得到显示bg的合成结果,fg混合在顶部。