Pergunta

Eu quero adicionar uma sombra para um arquivo de imagem. Qual é a melhor maneira de fazer isso? Eu pensei sobre como criar um WPF controle de imagem e adicionando um efeito de bitmap .. Mas como posso salvar o resultado em um arquivo?

Obrigado, Eric

Foi útil?

Solução

Você pode usar RenderTargetBitmap e um codificador para fazer isso. Codificador pode ser PNG, JPEG, etc .. Abaixo código imgControl representa o seu controle de imagem. Mas uma vez que é um efeito de bitmap pode ser necessário colocar essa imagem dentro de uma grade e dar adequada margem equivalente ao dropshadow e, em seguida, em vez de imgControl usar a grade no código abaixo.

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);
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top