Bonjour,

Je travaille actuellement sur les bitmaps en C et API Windows.

Je cherche à obtenir le tableau de pixels (RGB) à partir du handle (HBITMAP) et inversement.

Mais mon code me génère des scans lines noires !!! Comment puis-je résoudre ce problème ?

Voici mon code atuel :

+ Pour obtenir le tableau a partir du HBITMAP :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
start = 0;
for (ligne = 0; ligne < height; ligne++)
{
retour = SetDIBits(hDC, hBitmap, ligne, 1, &lpBits[start], 
(BITMAPINFO *)&pBitmap->Entete2, DIB_RGB_COLORS);
start += width*sizeof(TCouleur)+alignement;
}
+ Pour obtenir le HBITMAP a partir du tableau :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
start = 0;
for (ligne = 0; ligne < height; ligne++)
{
GetDIBits(hDC, hBitmap, ligne, 1, &lpBits[start], 
(BITMAPINFO *)&pBitmap->Entete2, DIB_RGB_COLORS);
 
memcpy(&pBitmap->pixels[ligne*width], &lpBits[start], 
width*sizeof(TCouleur));
 
start += width*sizeof(TCouleur)+alignement;
}
Ou est mon erreur ? Je sèche depuis 2 jours !!!

Merci d'avance de votre aide.
Ywan