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

C# 切换诺基亚图像处理SDK的前景和背景:BlendFilter(),c#,windows-phone-8,windows-phone,nokia-imaging-sdk,lumia-imaging-sdk,C#,Windows Phone 8,Windows Phone,Nokia Imaging Sdk,Lumia Imaging Sdk,我正在尝试使用诺基亚图像SDK将我使用ChromaKeyFilter的图像混合到背景图像上。我还希望在相同的渲染过程中对此进行调整 到目前为止,我得到了这个: IList<IFilter> finalFilters = new List<IFilter>(); finalFilters.Add(_chromaKeyFilter); finalFilters.Add(blendFilter); IList finalFilters=new List(); 最终过滤器。添加

我正在尝试使用诺基亚图像SDK将我使用ChromaKeyFilter的图像混合到背景图像上。我还希望在相同的渲染过程中对此进行调整

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

IList<IFilter> finalFilters = new List<IFilter>();
finalFilters.Add(_chromaKeyFilter);
finalFilters.Add(blendFilter);
IList finalFilters=new List();
最终过滤器。添加(_chromaKeyFilter);
添加(blendFilter);

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

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

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

然后在背景上应用BlendFilter(在另一个FilterEffect中),将前景中的FilterEffect作为其前景源,将前景图像置于其上方

尝试使用伪代码进行示例:

// 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。

请参见此处:在MainPage.xamlcs中,可以实现色度键。也许这对你有帮助谢谢,你刚刚为我节省了很多代码、时间和精力:-)现在唯一的问题是,我的最终jpeg包含了背景的捕获者日期,这导致了相机卷中的错误位置。你知道如何解决这个问题吗?我刚刚注意到-当你将.RemoveExif设置为true时,日期将被重置。NVM;-)