2010-11-07 8 views
2

Cela ne fonctionne pas pour une raison quelconque. Je ne sais pas pourquoi:Charger un bitmap vers un contrôle PictureBox

 objBitmap = new Bitmap(Resource1.im); 

     Stream stream; 
     objBitmap.Save(stream, ImageFormat.Bmp); 

     this.pictureBox2.Image = Image.FromStream(stream); 

     objBitmap.Dispose(); 

Fondamentalement, je dois montrer une image dans un contrôle PictureBox et je ne suis pas sûr de savoir comment faire.

Répondre

3
pictureBox2.Image = objBitmap; 
+0

Sous-classes 'Bitmap'' Image', donc c'est facile-peezy (quoi que cela signifie). – MusiGenesis

2

Vous pouvez changer cela à

pictureBox2.Image = Resource1.im; 

Pour répondre à votre question, vous devez mettre un flux (probablement un MemoryStream) dans la variable stream.
Vous devrez également "rembobiner" le flux avant de le relire dans un bitmap. (stream.Position = 0)

+0

En fait, je ne peux pas le faire parce que je l'ai chargé l'image de la ressource (Resource1.im) mais je l'ai changé les couleurs de quelques pixels dans le code, donc je veux mettre l'objet objBitmap Bitmap à l'intérieur du PictureBox contrôle. Resource1.im est l'image originale, je ne veux pas montrer cela. –

+0

Je n'ai aucune idée de ce que vous dites. – SLaks

4

Eh bien, il devrait aller kaboom sur la méthode Save(), le flux n'a jamais été initialisé. Je ne savais pas à quoi cela servait. Il y en a peut-être un mais il n'est pas visible depuis votre code. La version normale est:

if (this.pictureBox2.Image != null) this.pictureBox2.Dispose(); 
this.pictureBox2.Image = Properties.Resources.im; 

Avec quelques points d'interrogation sur ce que Resource1 pourrait être. Vous obtenez ma version en utilisant Projet + Propriétés, onglet Ressource et cliquez sur la flèche sur le bouton Ajouter une ressource, Ajouter un fichier existant.

Questions connexes