Р>>Здравствуйте Serg32M, Вы писали:
А>Так вот от видеорежима(кол-ва цветов, разрешения) ничего не зависит(проверено), цвет, взятый сабжем, неизменен при запусках проги на какой-то одной машине. Но как только я запущаю ее на другой — для тех же контрольных точек картинки возвращаются другие значения цветов.
Ну видимо может быть две проблемы.
1) неправильно берутся координаты точки
2) всё-таки маски для RGB состовляющих отличаются на этих машинах.
Цветовые компоненты можно получить.
GetBValue(
WORD rgb // 32-bit RGB value
);
GetGValue(
WORD rgb // 32-bit RGB value
);
GetRValue(
WORD rgb // 32-bit RGB value
);
Попробуй может действитнельно маски отличаются.
Вот код для их определения (ф-ии в API я не нашёл)
//вход: x,y - координаты
DWORD r,g,b;
int rshift,bshift,gshift;
DWORD pixel;
r=g=b=1;
rshift=gshift=bshift=-1;
HDC hdc=GetDC(hwnd);
do
{
pixel=RGB(r,0,0);
pixel=SetPixel(hdc,x,y,pixel);
pixel=GetPixel(hdc,x,y);
r<<=1;
rshift++;
}
while(!pixel);
//для остальных цветовых соствавляющих тоже самое.
//....
ReleaseDC(hwnd,hdc);
rshift, например, показывает сколько младших бит красного цвета теряется.
Попробую вообщем.