Имея все эти данные как получить RGB данные о пикселе с координатами x = 10; y = 10?
Как я понял - указатель pdata - это указатель на массив байт изображения, но как с ним работать не понятно
Отвечает: Ross
Здравствуйте, Кутубаев Нурлан Юсупович!
Очень просто: как с обычным одномерным массивом вида
RGBRGBRGBRGB....... (для 24 битного цвета) или
RGBARGBARGBA....... (для 32 битного цвета)
Однако есть один нюанс :) В bmp формате R и B каналы поменяны местами (непонятно только зачем...). Вобщем, чтобы получить данные о пикселе [10,10]:
LPBITMAPINFOHEADER lpbi;
lpbi = (LPBITMAPINFOHEADER)Camera1->GetCurrentBitmap();
pdata=(char *)lpbi+lpbi->biSize+lpbi->biClrUsed * sizeof(RGBQUAD);
unsigned char* pOffset = pdata[lpbi->biWidth*9 +9];
unsigned char R = pOffset[2],
G = pOffset[1],
B = pOffset[0];
--------- Доступно только то, что видимо (c) Б. Керниган
Ответ отправил: Ross (статус: Студент)
Ответ отправлен: 23.11.2007, 18:53 Оценка за ответ: 5