Pregunta

Quiero agregar una sombra paralela a un archivo de imagen. ¿Cuál es la mejor manera de hacer eso? Pensé en crear un control de imagen WPF y agregar un efecto de mapa de bits. Pero, ¿cómo puedo guardar el resultado en un archivo?

Gracias, Eric

¿Fue útil?

Solución

Puede usar RenderTargetBitmap y un codificador para hacer esto. El codificador puede ser Png, Jpeg, etc. Debajo del código imgControl representa su control de imagen. Pero dado que es un efecto de mapa de bits, es posible que deba colocar esta imagen dentro de una cuadrícula y dar el margen adecuado equivalente a la sombra y luego, en lugar de imgControl, use la cuadrícula en el código a continuación.

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 bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top