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 :
+ 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 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; }
Ou est mon erreur ? Je sèche depuis 2 jours !!!
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; }
Merci d'avance de votre aide.
Ywan
Partager