палитра BMP
От: _hunter Украина  
Дата: 14.11.03 06:31
Оценка:
как имея палитру и код пиксела определить цвет пиксела? (или где об этом можно прочитать)

заранее спасибо за ответ.

14.11.03 10:41: Перенесено модератором из 'C/C++' — ПК
Re: палитра BMP
От: AndreyFedotov Россия  
Дата: 14.11.03 10:26
Оценка:
Здравствуйте, _hunter, Вы писали:

_>как имея палитру и код пиксела определить цвет пиксела? (или где об этом можно прочитать)


_>заранее спасибо за ответ.


Палитра — это таблица (массив) цветов, в котором код пиксела является индексом.
Так что:
Color = pPalleteColors[ pixelCode ];

С Уважением, Андрей
Re[2]: палитра BMP
От: _hunter Украина  
Дата: 14.11.03 20:13
Оценка:
AF>Палитра — это таблица (массив) цветов, в котором код пиксела является индексом.
AF>Так что:
AF> Color = pPalleteColors[ pixelCode ];

AF>С Уважением, Андрей


а как определить что рисунок — в оттенках серого?

Заранее спасибо за ответ.
Re[3]: палитра BMP
От: MBo  
Дата: 15.11.03 11:50
Оценка:
_>а как определить что рисунок — в оттенках серого?

Пробежать по палитре и убедиться, что R,G и B составляющие одинаковы для каэдого эл-та палитры (например, 0xC1C1C1)
Учти, что иногда первые и последние 10 цветов палитры не используют (системные цвета Windows)
Re[3]: палитра BMP
От: AndreyFedotov Россия  
Дата: 17.11.03 07:01
Оценка:
Здравствуйте, _hunter, Вы писали:


AF>>Палитра — это таблица (массив) цветов, в котором код пиксела является индексом.

AF>>Так что:
AF>> Color = pPalleteColors[ pixelCode ];

AF>>С Уважением, Андрей


_>а как определить что рисунок — в оттенках серого?


_>Заранее спасибо за ответ.


Простой способ таков:
Убедиться в том, что все компоненты цвета, для каждой точки экрана, совпадают: R == G == B
Однако у этого способа есть недостатки. Например такой. Если изображение — это цветной скан чёрнобелой картинки, то почти наверняка компоненты цвета будут различны. Роэтому в данном случае используют другие подходы.
Например:
M = ( R + G + B ) / 3
Mmin = M * ( 1 — Eps )
Mmax = M * ( 1 + Eps )
Где Eps = [0,1] — коеффициент отклонения цвета.
Должно выполняться условие:
Mmin <= C <= Mmax, где С — компонента цвета (R, G, B)
При этом обычно Eps = 1/32 (из соображений режима HiColor) или более.
С Уважением, Андрей
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.