Народ, вопрос ерундовый... но я что то никак не могу сообразить...может где и накасячил...
надо загрузить картинку, bmp , она является картой, на ней 3 разных цвета использованы... в общем надо пройтись по всему изображения и либо создать свою матрицу по этой карте, либо использовать изображение в дальнейшем, разницы никакой, но у меня ерунда с цветами...
этим кодом вытягиваю картинку, и она получается....
| Код | //Открываем файл для чтения HANDLE hFile = CreateFile(getUrlTexture("col.bmp"), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
//Считываем заголовок файла DWORD dwBytesRead; BITMAPFILEHEADER hdr;// bitmap file-header ReadFile(hFile, &hdr, sizeof(BITMAPFILEHEADER), &dwBytesRead, NULL); UINT ImageSize = hdr.bfSize - hdr.bfOffBits;//Получаем размер изображения
//Считываем заголовок BITMAPINFO PBITMAPINFOHEADER pbih; pbih = (PBITMAPINFOHEADER)new char[hdr.bfSize - sizeof(BITMAPFILEHEADER) - ImageSize]; ReadFile(hFile, pbih, hdr.bfSize - sizeof(BITMAPFILEHEADER) - ImageSize, &dwBytesRead, NULL);
//Считываем сам рисунок BYTE *lpBits = (LPBYTE) GlobalAlloc(GMEM_FIXED, ImageSize); ReadFile(hFile, &lpBits, ImageSize, &dwBytesRead, NULL);
//Пытаемся загрузить все это в битмап BITMAP myBMP; myBMP.bmBits = lpBits; myBMP.bmBitsPixel = pbih->biBitCount; myBMP.bmHeight = pbih->biHeight; myBMP.bmWidth = pbih->biWidth; myBMP.bmPlanes = pbih->biPlanes; myBMP.bmType = 0; myBMP.bmWidthBytes = (pbih->biWidth * pbih->biBitCount + 15) / 16 * 2;
//Теперь загружаем сам битмап HBITMAP hbmp = CreateBitmapIndirect(&myBMP);
|
а вот самый простой
| Код | HDC hdc = GetDC(NULL); SelectObject(hdc,hbmp);
COLORREF bigg = GetPixel(hdc,100,100); int b1 = GetBValue(bigg);
|
на дает верных результатов |