HBITMAP LoadBMP(void)

{

HWND hwnd = GetDesktopWindow();

LPVOID lpDIBits = 0;

HANDLE hFile = CreateFile("image.bmp", GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);

if(hFile == INVALID_HANDLE_VALUE) return NULL;

 

BITMAPFILEHEADER bmFileHeader;

LPBYTE pByte = 0;

DWORD dwReadBytes;

 

ReadFile(hFile, &bmFileHeader, sizeof(BITMAPFILEHEADER), &dwReadBytes, NULL);

int iBitmapInfoSize = bmFileHeader.bfOffBits - sizeof(BITMAPFILEHEADER);

pByte = new BYTE[iBitmapInfoSize];

ReadFile(hFile, pByte, iBitmapInfoSize, &dwReadBytes, NULL);

 

HDC hdc = GetDC(hwnd);

LPBITMAPINFO lpBitmapInfo = (LPBITMAPINFO) pByte;

 

HBITMAP hDib = CreateDIBSection(hdc, lpBitmapInfo, DIB_RGB_COLORS, &lpDIBits, NULL, 0);

ReadFile(hFile, lpDIBits, lpBitmapInfo->bmiHeader.biSizeImage, &dwReadBytes, NULL);


static BYTE R;

static BYTE G;

static BYTE B;


BYTE* pTemp = (BYTE*)lpDIBits + (lpBitmapInfo->bmiHeader.biHeight-1) * lpBitmapInfo->bmiHeader.biWidth;

DWORD k = 0;



for(int y = (lpBitmapInfo->bmiHeader.biHeight - 1) * lpBitmapInfo->bmiHeader.biWidth ; y>0 ; y--)

{

        for(int x = 0; x<lpBitmapInfo->bmiHeader.biWidth; x++)

        {

R = *(pTemp + k+2);

            G = *(pTemp + k+1);

            B = *(pTemp + k);

            k+=3;

if(*pTemp == 102 && *(pTemp+1) == 128 && *(pTemp +2) ==230)

{

if(*(pTemp+3) == 0 && *(pTemp+4) == 255 && *(pTemp +5) == 80)

{

//*pTemp 

}

}

        }

}




SPRITE 툴 비스무리한거 만드는중인데

빨간줄이 비트맵 픽셀에서 RGB값 얻어오고 비교하는건데

Y좌표계 바껴서 다르게 FOR문 돌려야한다는데 어케돌리죠