Вниз
Скачать: CL | DM;

24-битный цвет в 8-битный   Найти похожие ветки 

 
Borealis   (2003-11-09 19:23) [0]

По какой формуле преобразуется 24-битный цвет (т.е. обычная переменная типа TColor с тремя однобайтовыми компонентами R, G и B), в 8-битный (т.е. 256-цветный)?


 
miek ©   (2003-11-09 22:23) [1]

По разным. Смотря какую палитру брать для 8-битного режима. Проще всего Greyscale или Uniform (можете посмотреть в Фотошопе). Или для каждой точки искать наиболее близкий цвет в палитре методом полного перебора.


 
крот   (2003-11-10 16:20) [2]

Я бы делал так:

1. Получил бы шаг для 256 цветового режима. То есть, всего цветов
в 24-битном режиме 16777215, значит для 256 цветового режима цвета будут различаться через 16777215/256 значений.

2. Далее, через цикл нашел бы соответсвующий цвет в 256 режиме

var
Color256: TColor; //искомый цвет
Step: integer; //Цветовой шаг
flag: boolean; //признак того, что цвет найден
Color: TColor; //исходный цвет в 24-битном режиме

flag := false;
while (Color256 < 256) and
(not flag)
begin
if (Color256 >= Color)
flag := true
else
Color256 := Color256 + Step;
end;

на выходе Color256 будет иметь ближайшее к исходному Color значение. По-моему так.


 
Mihey ©   (2003-11-11 00:16) [3]

2 крот:

Хорошо бы, если сосчитать количество всех уникальных цветов данного изображения и тогда можно точнее составить палитру для 256-цветного изображения.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.03 c
1-43520
Александр1
2004-02-27 19:59
2004.03.14
Работа с StringGrid1


3-43313
orger
2004-02-17 10:46
2004.03.14
Индексные поля


7-43910
Mnch
2003-12-21 16:45
2004.03.14
Dos-проиложение в окне Windows не работает с Com-портом


1-43594
LaidBack
2004-02-27 11:20
2004.03.14
Как вызвать нажатие кнопки Minimize у формы?


6-43736
Sen
2004-01-02 15:26
2004.03.14
Передача потоков по сети




   Наверх