C# 切换诺基亚图像处理SDK的前景和背景:BlendFilter()
我正在尝试使用诺基亚图像SDK将我使用ChromaKeyFilter的图像混合到背景图像上。我还希望在相同的渲染过程中对此进行调整 到目前为止,我得到了这个: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(); 最终过滤器。添加
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;-)