Автор
|
Тема: Понизить цветность BMPшки?
|
EHOT |
опубликован 22-10-2001 11:55 MSK
делаю программно PrintScreen, получаю BMPшку, ну скажем с 2^24 или даже 2^32 цветов. А мне нужно понизить ее цветность. Ну до 2^16 еще понятно, можно вручную ее "перекрутить", А как для 256=2^8 цветов. Откуда палитру взять? Или может есть какой-то "правильный" способ. Сколько бьюсь, ничего придумать не могу. ЗЫ: Менять цветность экрана нельзя, только BMPшки. GrayScale палитра тоже не подойдет. :(
|
rodion
|
опубликован 22-10-2001 12:23 MSK
Надо просто найти 256 наиболее часто встречающихся цвета. Надо использовать что то вроде гистограммы |
OlegN
|
опубликован 22-10-2001 13:51 MSK
Если на экране только "серые окна" без изображений с плавными переходами цветов, полутонами, градиентами и т.д. или если качество 256-ти цветного изображения не важно, то совет rodion-a вполне подойдет. А если качество критично, то лучше используй какое-либо профессиональное SDK по обработке изображений, потому как по стравнению с любым open source кодом они далеко впереди по качеству алгоритмов обработки изображений. |
EHOT
|
опубликован 22-10-2001 15:19 MSK
а, я то, наивный, надеялся, что можно _просто_ как нибудь вывернуться ну,там нагородить разных BitBlt,GetDIBits,SelectObject и проч. Так не хотелось вручную BMPшку перебирать... :(((
|
m_fox
|
опубликован 22-10-2001 18:19 MSK
Можно и так. Создаешь контекст в памяти. Устанавливаешь в него 256-ти цветовую палитру и копируешь туда картинку. или последовательность наоборот. смотри ф-цию ReleasePalette |