Pregunta

Tengo un control de imagen WPF con efecto de desenfoque adjunto. ¿Hay una manera de salvar la imagen (con el desenfoque) sin necesidad de utilizar RenderTargetBitmap?

Gracias.

ACTUALIZACIÓN: Ahora estoy usando nuevo efecto a medida que se deriva de System.Windows.Media.Effects.ShaderEffect. Me gustaría guardar mi imagen con efecto de sombreado aplicado.

¿Fue útil?

Solución

la única manera que usted puede hacer que el mapa de bits es el uso de RenderTargetBitmap.

Tener un vistazo a este ejemplo:

BitmapSource bitmap=GetYourBitmap();
Rectangle r=new Rectangle();
r.Background=new ImageBrush(bitmap);
r.Effect=yourEffect;

Size sz=new Size(bitmap.PixelWidth, bitmap.PixelHeight);
r.Measure(sz);
r.Arrange(new Rect(sz);

var rtb=new RenderTargetBitmap();
rtb.Render(r);
return rtb;//here is your bitmap with effects applied

Espero que esto ayude

Otros consejos

Sé que esto es una cuestión de edad ... pero pensé que iba a dirigir a las personas a cargo de Jamie Rodríguez ( http://blogs.msdn.com/jaimer/archive/2009/07/03/rendertargetbitmap-tips.aspx ) sobre este tema.

Yo tenía una situación en la que el uso de RenderTargetBitmap se traduce en una imagen vacía ... y después de Jamie era la respuesta para mí.

Espero que ayuda a otra persona también.

Esto es algo que quería también. De acuerdo con esto: http: // social.msdn.microsoft.com/Forums/en/wpfprerelease/thread/e2ebf264-e087-4bfe-a69b-24c884675c80 RenderTargetBitmap no utiliza HW (GPU) para rendir, único software. Qué lástima.

KV

Dado que el efecto de sombreado es por definición aplicada en la tarjeta de vídeo, la única manera de obtener una copia del mismo en la memoria principal es de agarrarlo de la memoria de pantalla. Así RenderTargetBitmap es su solución. ¿Hay alguna razón en particular que quería evitarlo?

Aquí van: http://perspectivefx.codeplex.com/ y todo el trabajo realizado por la GPU

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top