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