Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.09.15;
Скачать: CL | DM;

Вниз

Альфа канал иконки   Найти похожие ветки 

 
NS   (2012-12-28 03:32) [0]

Здравствуйте. Вопрос прислал Иванов из Калганова.

При получении ICONINFO иконок файлов я заметил, что некоторые hbmColor уже имеют альфа канал, в то время как другие полностью прозрачны и "требуют обработки" hbmMask"ом.

Как отличить эти битмапы?


 
KilkennyCat ©   (2012-12-28 07:13) [1]


> Как отличить эти битмапы?

а как

> При получении ICONINFO иконок файлов я заметил

?


 
NS   (2012-12-28 11:50) [2]


var
 icon: HICON;
 FI: SHFILEINFO;
 II: ICONINFO;
 BI: tagBITMAPINFO;
 DC: HDC;
 ImageList: HIMAGELIST;
begin
SHGetFileInfo(PChar(fname), 0, FI, SizeOf(FI), SHGFI_SYSICONINDEX or SHGFI_ICON or SHGFI_LARGEICON);
ImageList:= GetImageListSH(SHIL_EXTRALARGE);
icon:= ImageList_GetIcon(ImageList, FI.iIcon, ILD_NORMAL);
GetIconInfo(icon, II);
DC:= CreateCompatibleDC(0);
InitBIHeader(II.hbmColor, BI.bmiHeader);
Bits:= Pointer(GlobalAlloc(GMEM_FIXED, BI.bmiHeader.biSizeImage));
GetDIBits(DC, II.hbmColor, 0, BI.bmiHeader.biHeight, Bits, BI, DIB_RGB_COLORS);
DeleteDC(DC);
DeleteObject(II.hbmMask);
DeleteObject(II.hbmColor);
end;


В одном случае Bits уже будет содержать информацию об альфа канале, в другом он будет полностью нулевой.



Страницы: 1 вся ветка

Текущий архив: 2013.09.15;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.008 c
15-1364391250
Sammi
2013-03-27 17:34
2013.09.15
Проблема с функцией Delphi -> C++


15-1365423706
ВВВ
2013-04-08 16:21
2013.09.15
Syntax Check - Hotkey.


2-1357246105
Irmantukas
2013-01-04 00:48
2013.09.15
Несрабатывает имитация нажатия левой кнопки мышки...


15-1365005875
О-Сознание
2013-04-03 20:17
2013.09.15
Надёжность GetWindowLong(H, GWL_USERDATA)


2-1356680112
aka
2012-12-28 11:35
2013.09.15
Работа с указателями