我有一个带有附加模糊效果的 WPF 图像控件。有没有办法在不使用 RenderTargetBitmap 的情况下保存图像(模糊)?
谢谢你。
更新:我现在使用派生自 System.Windows.Media.Effects.ShaderEffect 的新自定义效果。我想保存应用了着色器效果的图像。
渲染位图的唯一方法是使用 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
希望这可以帮助
我知道这是一个老问题......但我想我会向人们指出 Jamie Rodriguez 的帖子(http://blogs.msdn.com/jaimer/archive/2009/07/03/rendertargetbitmap-tips.aspx)学科。
我遇到过使用 RenderTargetBitmap 会导致图像为空的情况……而 Jamie 的帖子就是我的答案。
希望它也对其他人有所帮助。
这也是我想要的。据此:http : //social.msdn.microsoft.com/Forums/en/wpfprerelease/thread/e2ebf264-e087-4bfe-a69b-24c884675c80 RenderTargetBitmap 不使用硬件(GPU)进行渲染,仅使用软件。太遗憾了。
千伏
由于着色器效果是根据定义应用在显卡上的,因此在主内存中获取它的唯一方法是从屏幕内存中获取它。所以 RenderTargetBitmap 是您的解决方案。你有什么特别的原因要避免它吗?
给你:http ://perspectivefx.codeplex.com/和 GPU 完成的所有工作