使用着色器效果保存WPF图像

Val*_*yev 4 wpf imaging

我有一个带附加模糊效果的WPF图像控件.有没有办法在不使用RenderTargetBitmap的情况下保存图像(带模糊)?

谢谢.

更新:我现在使用的是从System.Windows.Media.Effects.ShaderEffect派生的新自定义效果.我想保存我的图像应用着色器效果.

小智 7

您可以渲染位图的唯一方法是使用RenderTargetBitmap.

看看这个例子:

BitmapSource bitmap=GetYourBitmap();
Rectangle r=new Rectangle();
r.Background=new ImageBrush(bitmap);
r.Effect=yourEffect;

Size sz=new Size(bitmap.PixelWidth, bitmap.PixelHeight);
r.Measure(sz);
r.Arrange(new Rect(sz);

var rtb=new RenderTargetBitmap();
rtb.Render(r);
return rtb;//here is your bitmap with effects applied
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助

  • 值得指出的是,这将处理CPU上的效果,而不是GPU上的效果. (5认同)