Вопрос

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

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

Это было полезно?

Решение

Для этого вы можете использовать RenderTargetBitmap и Encoder. Кодировщик может быть Png, JPEG и т. Д. Ниже кода imgControl представляет ваш контроль изображения. Но так как это растровый эффект, вам может понадобиться поместить это изображение в сетку и дать правильный запас, эквивалентный 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);
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top