2

画像ファイルにドロップシャドウを追加したい。それを行うための最良の方法は何ですか?WPFイメージコントロールを作成してビットマップ効果を追加することを考えました。しかし、結果をファイルに保存するにはどうすればよいですか?

ありがとう、エリック

4

1 に答える 1

2

これを行うには、RenderTargetBitmapとエンコーダーを使用できます。エンコーダーには、Png、Jpegなどがあります。以下のコードimgControlは、イメージコントロールを表します。ただし、これはビットマップ効果であるため、この画像をグリッド内に配置し、ドロップシャドウと同等の適切なマージンを与える必要がある場合があります。次に、imgControlの代わりに以下のコードのグリッドを使用します。

double Height = imgControl.ActualHeight;
double Width = imgControl.ActualWidth;

RenderTargetBitmap bmp = new RenderTargetBitmap((int)Width, (int)Height, 
                                                96, 96, PixelFormats.Pbgra32);
bmp.Render(imgControl);

BitmapEncoder encoder = new JpegBitmapEncoder();

encoder.Frames.Add(BitmapFrame.Create(bmp));

using (Stream stream = File.Create("Yourfile.jpeg"))
{
    encoder.Save(stream);
}
于 2009-08-01T22:26:40.220 に答える