![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
мне привести 24-битное изображение к 8-битному... [D6, D7, Win2k, WinXP]
Ale}{(is) © (2004-07-17 20:33:00)Уважаемые Мастера! подскажите пожалуйста ответ на такой вопрос. Есть сгенерированная по алгоритму octree палитра. Как мне привести 24-битное изображение к 8-битному, используя эту палитру, возможно с использованием dithering’а (как это делает ACDSee FotoEditor). Смотрел по ссылке http://www.efg2.com/Lab/Library/Color/AndComputers.htm#Quantization, но там столько всего, что я запутался. Подскажите, пожалуйста, алгоритм или дайте ссылочку.
Огромное Кулясищще (2004-07-25 17:47:00) [1]2 Ale}{(is) (18.07.04 21:48) [3]:
Что ж такое говоришь? Ты сам пишешь:
> Есть сгенерированная по алгоритму octree палитра.
Как же ты её сгенерировал?
Ertong (2004-07-25 08:42:00) [2]Поройся в исходниках бесплатного компонента GifImage. Там реализовано много методов dithering'а.
Ale}{(is) (2004-07-18 21:48:00) [3]Правильно, хранится в PLogPalette. Однако, если у тебя палитра в 16 цветов (а не в 256), то простым подбором цветов не обойтись. Нужен алгоритм dithering'а. Знаю, что их множество, но все на сишке. На Дэльфи ничего не нашёл. Нужна просто ссылка. Словестные описания - это хорошо, но лучше не изобретать велосипед, а воспользоваться чем нибудь проверенным...
Огромное Кулясищще (2004-07-17 23:35:00) [4]> А почему бы тебе не изменить с помощь TBitMap
Без потерь это пройдёт от меньшего к большему.
> Есть сгенерированная по алгоритму octree палитра. Как мне привести 24-битное изображение к 8-битному, используя эту палитру
Гм, какие сложности? Палитра была сгенерирована с изображения. Очевидно, держится в PLogPalette. Дальше, наверное, лучше завести отдельное изображение pf8bit и простым проходом выбираешь ближайший из палитры цвет для данного. Тут простой алгоритм подойдёт какой-нить (можно доступ к RGB составляющим, а далее берёшь R за основу и складываешь модкули разности между R и G, и R и B. Чем меньше число - те мближе цвет) или может GetNearestColor умеет корректировать себя по палитре. В общем, всё ништяк.
oleg_SYS (2004-07-17 21:18:00) [5]А почему бы тебе не изменить с помощь TBitMap
var
bm: TBitMap;
begin
bm.LoadFromFile('какринка.bmp');
bm.PixelFormat:=pf8bit;
bm.SaveToFile('какринка.bmp');