6

ぼかし効果が付加された WPF イメージ コントロールがあります。RenderTargetBitmap を使用せずに画像を (ぼかして) 保存する方法はありますか?

ありがとうございました。

更新: System.Windows.Media.Effects.ShaderEffect から派生した新しいカスタム効果を使用しています。シェーダー効果を適用した画像を保存したいと思います。

4

5 に答える 5

8

ビットマップをレンダリングできる唯一の方法は、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

お役に立てれば

于 2009-02-21T18:44:19.300 に答える
2

私はこれが古い質問であることを知っています...しかし、私は人々にこれに関するジェイミー・ロドリゲスの投稿(http://blogs.msdn.com/jaimer/archive/2009/07/03/rendertargetbitmap-tips.aspx)を紹介すると思いました主題。

RenderTargetBitmapを使用すると画像が空になるという状況がありました...そしてJamieの投稿が私にとっての答えでした。

それが他の誰かにも役立つことを願っています。

于 2009-11-06T20:28:06.530 に答える
2

これは私も欲しかったものです。これによると: http://social.msdn.microsoft.com/Forums/en/wpfprerelease/thread/e2ebf264-e087-4bfe-a69b-24c884675c80 RenderTargetBitmap は HW (GPU) を使用せず、ソフトウェアのみをレンダリングします。お気の毒に。

KV

于 2010-01-28T19:52:04.050 に答える
1

シェーダー効果は定義上ビデオ カードに適用されるため、そのコピーをメイン メモリに取得する唯一の方法は、スクリーン メモリから取得することです。したがって、RenderTargetBitmap がソリューションです。それを避けたかった特別な理由はありますか?

于 2009-02-13T14:00:29.027 に答える