我有一個帶有附加模糊效果的WPF圖像控件。 有沒有辦法保存圖像(模糊),而不使用RenderTargetBitmap?保存應用了着色器效果的WPF圖像
謝謝。
更新:我現在使用從System.Windows.Media.Effects.ShaderEffect派生的新的自定義效果。 我想用應用的着色器效果保存圖像。
我有一個帶有附加模糊效果的WPF圖像控件。 有沒有辦法保存圖像(模糊),而不使用RenderTargetBitmap?保存應用了着色器效果的WPF圖像
謝謝。
更新:我現在使用從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
希望這有助於
由於着色器效果根據定義應用於視頻卡上,因此您可以在主內存中獲取副本的唯一方法是從屏幕內存中獲取該副本。所以RenderTargetBitmap是你的解決方案。你有什麼特別的理由想避免它?
我知道這是一個老問題...但我想我會指向人傑米·羅德里格斯的帖子(http://blogs.msdn.com/jaimer/archive/2009/07/03/rendertargetbitmap-tips.aspx)上這個主題。
我有一種情況,使用RenderTargetBitmap導致一個空的圖像...和傑米的帖子是我的答案。
希望它可以幫助別人。
這也是我想要的東西。據此:http://social.msdn.microsoft.com/Forums/en/wpfprerelease/thread/e2ebf264-e087-4bfe-a69b-24c884675c80 RenderTargetBitmap不使用HW(GPU)來渲染,只有軟件。太遺憾了。
KV
在這裏你去:http://perspectivefx.codeplex.com/和所有工作都完成的GPU
嗨U62,感謝您的回覆。我想避免純粹是爲了表演。原因。謝謝。 – Valentin 2009-02-14 06:47:54
優雅,你downvote我的答案,然後獎勵一個人在一個星期後告訴你完全相同的事情的賞金和接受的答案。我喜歡SO,用戶真的是這樣... – U62 2009-02-27 20:18:32