2010-03-29 6 views
10

Je n'arrive pas à comprendre comment charger une image pictureBox à partir d'un bitmap en mémoire. Est-il possible ou dois-je créer un fichier temporaire pour l'image bitmap?Charger une image Picturebox à partir de la mémoire?

+1

Copie possible: http://stackoverflow.com/questions/743549 – dtb

+0

Comment faire vous avez le bitmap en mémoire? – SLaks

+0

C'est le contraire, charger l'image à partir d'un fichier, ce qui est inhabituel. Utilisez la classe Bitmap. –

Répondre

20

Quel est le format de l'image en mémoire?

Si vous avez un objet réel Bitmap, juste assigner à PictureBox, comme suggéré par DTB:

pictureBox.Image = bitmap; 

Si vous avez l'image comme une série d'octets détenus dans un cours d'eau, vous aurez besoin pour charger l'image du flux:

var image = Image.FromStream(stream); 
pictureBox.Image = image; 

Si vous avez la place d'une poignée de fenêtres GDI au bitmap, utilisez

var image = Image.FromHbitmap(handle); 
pictureBox.Image = image; 

Essentiellement, il est difficile de répondre à votre question avec plus que des suggestions lorsque vous ne nous avez pas dit quel est le format du Bitmap que vous avez.

+0

J'ai reçu l'exception' System.ArgumentException: Parameter is not valid.'' lorsque j'ai essayé de charger l'image à partir du flux. –

+0

@BalagurunathanMarimuthu Je suggère de poster votre propre question pour obtenir de l'aide dans votre contexte particulier; il est difficile d'aider avec si peu d'informations. – Bevan

2
pictureBox.Image = bitmap; 
+0

paramètre manquant ici 'Dim image As Byte() = GetBytes (ListView2.Items (index) .SubItems (8) .Texte) Convertisseur de dim comme nouveau ImageConverter() PictureBox1.Image = DirectCast (converter.ConvertFrom (image) , Image) ' –

4

Vous pouvez créer un Bitmap d'un MemoryStream:

pictureBox.Image = new Bitmap(new MemoryStream(byteArray)); 
+0

à quel point est-il sûr d'éliminer explicitement le MemoryStream? Would: using (var ms = nouveau MemorySteam (byteArray)) {pictureBox.Image = nouveau Bitmap (ms)}; fais attention ? –

+0

@MoeSisko: Vous n'avez pas vraiment besoin de disposer d'un MemoryStream; ils n'ont pas de resorces non gérés. (juste un 'byte []') Mais, oui; cela devrait être bien. – SLaks

+0

paramètre manquant ici 'Dim image As Byte() = GetBytes (ListView2.Items (index) .SubItems (8) .Texte) Convertisseur de dim comme nouveau ImageConverter() PictureBox1.Image = DirectCast (converter.ConvertFrom (image) , Image) ' –

Questions connexes