Rassurez vous, c’est beaucoup plus simple que vous ne pouvez le croire :)

Le code suivant permet d’afficher une image PGM (portable grayscale map) sous Visual C++ 2005. Pour résumer, il s’agit de récupérer le graphique associé à la zone de dessin, de créer une bitmap en mémoire, de la remplir en parcourant une matrice représentant les valeurs stockées dans l’image PGM à afficher et enfin d’affecter cette bitmap à l’image de la zone de dessin. Trêve de blabla, voici le code:

void dessiner(unsigned char ** matrice,int lx,int ly){
Graphics^ g = pictureBox1->CreateGraphics();
Bitmap^ myBitmap = gcnew Bitmap(lx,ly);

Color myColor;
int x,y;
for (x = 0 ; x< myBitmap->Height - 1;x++)
for (y= 0 ; y< myBitmap->Width - 1;y++) {
myColor = Color::FromArgb(matrice[x][y],matrice[x][y],matrice[x][y]);
myBitmap->SetPixel(y,x,myColor);
}
pictureBox1->Image = myBitmap;
}