Pregunta

Lo que tengo es algo así como una aplicación de captura de pantalla decisiones. (Gestionado para serializar, gracias a Dios !!!) Cuando se hace clic en un botón de una captura de pantalla es tomada por el método de acceso a una classe manejo. ahora la parte difícil es que la clase tiene otro método para operar con el encima de dicho resultado, de tal manera que cuando se llama al método de manipulación respectiva, una ventana está creado (muestra) y la imagen de mapa de bits debe entrar en un contenedor de visualización en esa ventana. El problema es que hasta ahora, me he dado cuenta que en WPF fuente del control de la imagen no puede ser attribuited a una variable que almacena la imagen. ¿Cómo puedo mostrar la imagen almacenada en esa variable sin tener que guardarlo en primer lugar, obtener uri, etc. ?

¿Fue útil?

Solución

Se necesita crear una imagen a partir de una secuencia de memoria, esto ha sido bien documentado por muchas personas. Aquí hay dos enlaces que pueden ayudarle a empezar:

http://forums.silverlight.net/forums/p/44637/ 166282.aspx

http://www.wpftutorial.net/Images.html

Otros consejos

Gracias por los enlaces slugster. He aquí cómo lo hice:

MemoryStream ms = new MemoryStream();
sBmp = gBmp; //note: gBmp is a variable that stores the captured image and passes it on to the method that uses sBMP as a distribuitor of the variable holding the captured image data
//variable that holds image
sBmp.Save(ms,ImageFormat.Bmp);
//my buffer byte
byte[] buffer = ms.GetBuffer();
//Create new MemoryStream that has the contents of buffer
MemoryStream bufferPasser = new MemoryStream(buffer);
//Creates a window with parents classthatholdsthismethod and null
Edit childEdit = new Edit(this, null);
childEdit.Show();
//I create a new BitmapImage to work with
BitmapImage bitmap = new BitmapImage();
bitmap.BeginInit();
bitmap.StreamSource = bufferPasser;
bitmap.EndInit();
//I set the source of the image control type as the new BitmapImage created earlier.
childEdit.imgImageCanvas.Source = bitmap;
childEdit.Activate();

He básicamente combina lo que había encontrado en esas páginas con algo de información que encontré en la forma de pasar sobre un bmp a un memstream. Tengo este trabajo a 100%:)

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