Re[2]: Прозрачные изображения (32bpp) на Toolbar-е
От: unreg_flex  
Дата: 25.11.04 14:48
Оценка:
Здравствуйте, AlexGluharev, Вы писали:

AG>Здравствуйте, unreg_flex, Вы писали:


_>>Эксперты помогите!

_>>Никак не могу заставить WinXP правильно отображать 32-х битные изображения.
_>>Ужо чего только не пробовал!
_>>Она настырно не хочет интерпретировать альфа канал!
_>>Изображения я создавал с помощью FreeHand9 & PhotoShop5.5.
_>>Можно указать прозрачный цвет (1 bit alpha), но в этом случае края выглядят коряво,
_>>а нужно как в explorer'е (8 bit alpha)!
_>>Подскажите что не так plz (четвертый день парюсь)!


AG>
AG>/*  Создаем ImageList */
AG>        iml_ToolBar_n = ImageList_Create (0,0, ILC_COLOR32 | ILC_MASK, NULL, NULL);
    
AG>        /*  Загружаем рисунки ToolBar */
AG>        iml_ToolBar_n = ImageList_LoadImage( hInstDll, /* Здесь изображение */, 0, 0, CLR_DEFAULT, IMAGE_BITMAP, LR_CREATEDIBSECTION);
AG>        iml_ToolBar_h = ImageList_LoadImage( hInstDll, /* Здесь изображение, когда мышь на кнопке */, 0, 0, CLR_DEFAULT, IMAGE_BITMAP, LR_CREATEDIBSECTION);
    
AG>        /* Подключаем рисунки */
AG>        SendMessage (hToolBar, TB_SETIMAGELIST,        0, (LPARAM) iml_ToolBar_n);
AG>        SendMessage (hToolBar, TB_SETHOTIMAGELIST,    0, (LPARAM) iml_ToolBar_h);
AG>


AG>Я тут свои параметры не убирал, разберёшся надеюсь.

AG>А вообще, пиши на мыло, кину файл справки, там об этом написано.

Я использовал этот код, но результат аналогичный!
XP интерпретирует альфа канал как однобитный
т.е. изображение либо абсолютно прозрачно, либо абсолютно непрозрачно
и правильного смешивания цветов не порисходит.
в результате гробятся края при переходе с прозрачного на непрозрачный!
Изображение которое гружу гарантированно 32bpp с 8bit alpha
причем 0<alpha<255 (проверено по F3)!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.