2009-02-13 59 views
4

我有一個帶有附加模糊效果的WPF圖像控件。 有沒有辦法保存圖像(模糊),而不使用RenderTargetBitmap?保存應用了着色器效果的WPF圖像

謝謝。

更新:我現在使用從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 

希望這有助於

1

由於着色器效果根據定義應用於視頻卡上,因此您可以在主內存中獲取副本的唯一方法是從屏幕內存中獲取該副本。所以RenderTargetBitmap是你的解決方案。你有什麼特別的理由想避免它?

+0

嗨U62,感謝您的回覆。我想避免純粹是爲了表演。原因。謝謝。 – Valentin 2009-02-14 06:47:54

+0

優雅,你downvote我的答案,然後獎勵一個人在一個星期後告訴你完全相同的事情的賞金和接受的答案。我喜歡SO,用戶真的是這樣... – U62 2009-02-27 20:18:32