Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Алгоритм уменьшения глубины цвета


JS ©   (2003-10-25 16:51:00) 

Подскажите какой-нибудь сабж. Описание, ссылки, исходники.

Заранее благодарен.


Dmk   (2003-10-26 15:21:00) [1]

Вот. Еще для DOS"а писал =).
Перевод из 8:8:8:8 -> 5:6:5

Function RgbTo565(const Color:DWord):Word;
asm
mov cl, al
shr cl, 3
mov dl, ah
shr dl, 2
shr eax, 8
mov ch, ah
shr ch, 3
xor ax, ax
or al, ch
shl ax, 6
or al, dl
shl ax, 5
or al, cl
end;

Для режима Paletted можно составить
приблизительно такой алгоритм.
Создаем таблицу из 256 элементов(Будущая палитра).
Попиксельно читаем значения цвета RGB.
Находим позицию в палитре:
Pos := (DWord(RGB)+ 1) div 65536;
Разбиваем Цвет пиксела на R,G,B составляющие
и заносим их в переменные.
Затем заносим в таблицу поэлементно
R, G и B значения и находим среднее
арефметическое сотавляющих для текущего пиксела
и предыдущего пиксела.
Заносим в таблицу ср. арфм. и продолжаем читать
пикселы дальше.
К сожалению алгоритм выдуман на ходу, поэтому
работоспособность не проверял.


SkyRanger   (2003-10-26 11:43:00) [2]

Ну наверно можно попытаться использовать какую нить таблицу соответствия цветов, которая строится автоматически. Более конкретно подумай сам.


Наверх

Титульная страница Поиск, карта сайта Написать письмо