Re: Палитра
От: PSP Беларусь  
Дата: 19.11.01 14:56
Оценка: 18 (1)
Здравствуйте Volnin L.V., Вы писали:

VL>Здравствуйте товарищи программисты!

VL>Сможет ли кто-нибудь помочь мне (советом, али кодом) в следующей проблеме:
VL>мне необходимо отобразить картинку на контекстнй девайс окна;
VL>картинка 24-битная (матрица struct RGBQUAD), а девайс
VL>8-битный. Если создавать bitmap посредством CreateDIBItmap, то
VL>картинка отображается 16 цветной (что выглядит совсем неприглядно), а как сделать чтобы эта функция ее преобразовала в 8-битную по заданной палитре (палитру я экстрагировал из катринки)
VL>неясно ... (пробовал и так и эдак аргументами оперировать — невыходит).

Во первых тебя спасёт ::StretchDIBits и ::SetStretchBltMode, в которой можно всё указать. А 16-битной она кстати не отображается, просто при выводе твои цвета криво подгоняются под системные. Проще всего будет установить свою палитру .

Вообще по поводу вывода картинок есть опупеннейшая статья:
More Fun with MFC: DIBs, Palettes, Subclassing, and a Gamut of Reusable Goodies
ажно три части.
Всегда Ваш, PSP.
Палитра
От: Volnin L.V. Россия  
Дата: 19.11.01 13:47
Оценка:
Здравствуйте товарищи программисты!
Сможет ли кто-нибудь помочь мне (советом, али кодом) в следующей проблеме:
мне необходимо отобразить картинку на контекстнй девайс окна;
картинка 24-битная (матрица struct RGBQUAD), а девайс
8-битный. Если создавать bitmap посредством CreateDIBItmap, то
картинка отображается 16 цветной (что выглядит совсем неприглядно), а как сделать чтобы эта функция ее преобразовала в 8-битную по заданной палитре (палитру я экстрагировал из катринки)
неясно ... (пробовал и так и эдак аргументами оперировать — невыходит).

Заранее благодарен, Леонид.
best regards, Leonid
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.