1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
//NB : LPSTR=char*
//Charger un bitmap
HBITMAP LoadBitmapEx(LPSTR lpszFileName)
{
HBITMAP hBmp;
hBmp=HANDLE LoadImage(NULL,lpszFileName,IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);
return hBmp;
}
//Libère le BITMAP
void FreeBitmap(hBITMAP hBmp)
{
DeleteObject(hBmp);
}
//Largeur BITMAP
int GetBitmapWidth(HBITMAP hBmp)
{
BITMAP Bmp;
GetObject(hBmp,sizeof(BITMAP),&Bmp);
return Bmp.bmWidth;
}
//Hauteur BITMAP
int GetBitmapHeight(HBITMAP hBmp)
{
BITMAP Bmp;
GetObject(hBmp,sizeof(BITMAP),&Bmp);
return Bmp.bmHeight;
}
//Lire un pixel dans un bitmap
//COLORREF=unsigned long
//Les couleurs sont stockées sous le format
//0x00RRGGBB (R=rouge,G=vert,B=bleu)
COLORREF ReadPixel(HBITMAP hBmp,int x,int y)
{
HDC hDC;
COLORREF dwPixel;
hDC=CreateCompatibleDC(NULL);
SelectObject(hDC,hBmp);
dwPixel=GetPixel(hDC,x,y);
DeleteDC(hDC);
return dwPixel;
}
//Pour écrire dans un BITMAP, il faut utiliser
//SetDIBits ( voir MSDN )
//http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/bitmaps_0qk3.asp
//Pour l'enregistrement dans un fichier BITMAP,
//C'est à TOI de coder les fonctions. |
Partager