Bonjour,
J'ai trouvé un petit morceau de code (sur un forum Japonais), permettant de convertir une image de type IplImage (OpenCv donc), en Bitmap.
Le voiçi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
IplImage *img = cvLoadImage("monImage.jpg",1);
char * ColorBufInit = (char *) calloc (sizeof (char), img-> width * img-> height * 4);
CBitmap mbmp;
for (int y=0; y <img-> height; y++) 
{		
	for (int x = 0; x <img-> width; x++) 
	{
 
		ColorBuf [y * img-> width * 4 + x * 4 + 0] = img-> imageData [y * img-> widthStep + x * 3 + 0];
		ColorBuf [y * img-> width * 4 + x * 4 + 1] = img-> imageData [y * img-> widthStep + x * 3 + 1];
		ColorBuf [y * img-> width * 4 + x * 4 + 2] = img-> imageData [y * img-> widthStep + x * 3 + 2];
 
	}
}
mbmp.CreateBitmap (img-> width, img-> height, 1, 32, ColorBufInit);
free (ColorBufInit);
((CStatic *) GetDlgItem (IDC_STATIC_PICTURE)) -> SetBitmap (mbmp);

Le code fonctionne très bien, et cela m'a ainsi permis d'afficher entre autre, tout type d'image dans mon Picture Control (j'ai crée une sorte d'application de dessin dans un but précis). En revanche, j'aurais besoin d'aide, quant à la compréhension du code. Nous n'avons fait que 2h de cours sur les bitmaps, je n'ai donc que quelques connaissances, sans plus. En fait, je fais appel à vous pour me permettre de mieux comprendre l'algorithme de conversion. J'ai compris l'aspect général de la conversion (on parcours notre image en longueur et largeur jusqu'au dernier pixel), mais je n'ai pas encore saisi notamment le contenu de la deuxième boucle (les différentes opérations numériques effectuées en partie). Je vais tenter d'approfondir l'étude sur les bitmaps de mon coté.
Merci d'avance de votre aide.
Cordialement, Linux.