我一直在尝试将Nokias Imaging SDK中的过滤器应用到WriteableBitmap。到目前为止,我没有任何成功。我得到的“最好的”是以下内容,它在renderer.RenderAsync()
MemoryStream stream = new MemoryStream(App.MainViewModel.Current.Album.Cover.ToByteArray());
StreamImageSource streamImage = new StreamImageSource(stream);
FilterEffect filters = new FilterEffect(streamImage);
WriteableBitmapRenderer renderer = new WriteableBitmapRenderer(filters);
BlurFilter blurFilter = new BlurFilter();
filters.Filters = new[] { blurFilter };
var result = await renderer.RenderAsync();
Cover上的ToByteArray()
扩展方法(WriteableBitmap
)由WriteableBitmapEx库提供。
有没有人遇到同样的问题?
答案 0 :(得分:1)
您在renderer.RenderAsync()中遇到异常,因为您没有设置WriteableBitmapRenderer的WriteableBitmap属性。
WriteableBitmapRenderer无法为您创建WriteableBitmap,因为它需要在UI线程上创建。因此,您必须自己创建它并将其传递给渲染器对象(在构造函数中或通过设置属性)。