2009-04-13 8 views
19

¿Es posible cargar una imagen desde la memoria (byte[] o stream o Bitmap) sin guardarla en el disco?Cómo poner la imagen en un cuadro de imagen desde Bitmap

Este es el código que utilizo para convertir la matriz byte[] en un Bitmap:

unsafe 
{ 
    fixed (byte* ptr = Misc.ConvertFromUInt32Array(image)) 
    { 
     Bitmap bmp = new Bitmap(200, 64, 800, PixelFormat.Format32bppRgb, new IntPtr(ptr)); 
     bmp.RotateFlip(RotateFlipType.Rotate180FlipX); 
     bmp.MakeTransparent(Color.Black); 
     bmp.Save("test.bmp"); 
    } 
} 

En lugar de utilizar Bmp.save(), puedo poner la Bitmap en el cuadro de imagen en mi formulario?

Respuesta

41

¿Has probado esto?

pictureBox.Image = bmp; 
+0

sólo lo hice y funcionó bien, gracias! –

0

Si está trabajando con el lenguaje de programación C++, se puede hacer así:

void backGroundImage() 
{ 
    Image^ back = gcnew Bitmap("C:\\Users\\User\\Documents\\image.bmp"); 
    pictureBox1->BackGroundImage = back; 
}; 

A continuación, puede llamar backGroundImage cuando se necesita para cargar un mapa de bits.

3

Tenía un código parecido a la respuesta aceptada que causaba una pérdida de memoria. El problema es que cuando configura la imagen del cuadro de imagen en el mapa de bits, todavía se está refiriendo al mapa de bits, en lugar de crear una copia. Si necesita configurar la imagen varias veces, debe asegurarse de eliminar todos los viejos mapas de bits.

Esto es para cualquier persona que está buscando clon un mapa de bits a un cuadro de imagen. Prueba esto:

if (pictureBox.Image != null) pictureBox.Image.Dispose(); 
pictureBox.Image = myBitmap.Clone(
    new Rectangle(0, 0, myBitmap.Width, myBitmap.Height), 
    System.Drawing.Imaging.PixelFormat.DontCare); 
+1

Gracias. Tratando de usar el mapa de bits sin clonar, estaba lanzando una excepción en System.Drawing.Dll. ¡Usar tu sugerencia de .Clone me solucionó el problema! – saurabhj

-1
pictureBox.Image = Properties.Resources.image.bmp; 
+0

¿Podría darnos más detalles sobre cómo se supone que debería funcionar? – jotik

Cuestiones relacionadas