ぼかし効果が付加された 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
お役に立てれば
私はこれが古い質問であることを知っています...しかし、私は人々にこれに関するジェイミー・ロドリゲスの投稿(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 は HW (GPU) を使用せず、ソフトウェアのみをレンダリングします。お気の毒に。
KV
シェーダー効果は定義上ビデオ カードに適用されるため、そのコピーをメイン メモリに取得する唯一の方法は、スクリーン メモリから取得することです。したがって、RenderTargetBitmap がソリューションです。それを避けたかった特別な理由はありますか?