Нарисуйте тень - PullRequest
       11

Нарисуйте тень

2 голосов
/ 02 августа 2009

Я хочу добавить тень к файлу изображения. Какой лучший способ сделать это? Я думал о создании элемента управления WPF Image и добавлении растрового эффекта. Но как мне сохранить результат в файл?

Спасибо, Эрик

1 Ответ

2 голосов
/ 02 августа 2009

Вы можете использовать RenderTargetBitmap и Encoder для этого. Кодировщик может быть 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);
}
...