画阴影

时间:2009-08-01 21:10:18

标签: c# wpf image effect

我想为图像文件添加阴影。最好的方法是什么? 我考虑过创建WPF图像控件并添加位图效果..但是如何将结果保存到文件中呢?

谢谢,Eric

1 个答案:

答案 0 :(得分:2)

您可以使用RenderTargetBitmap和Encoder来执行此操作。编码器可以是Png,Jpeg等。 下面的代码imgControl代表你的Image控件。但由于它是位图效果,您可能需要将此Image放在网格中并提供相当于Drophadow的适当边距,然后使用下面代码中的网格而不是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);
}