Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.005 c
15-1365423706
ВВВ
2013-04-08 16:21
2013.09.15
Syntax Check - Hotkey.


15-1365366603
Юрий
2013-04-08 00:30
2013.09.15
С днем рождения ! 8 апреля 2013 понедельник


15-1365042070
Думкин_
2013-04-04 06:21
2013.09.15
404 - всех с Днем!


15-1365021003
Юрий
2013-04-04 00:30
2013.09.15
С днем рождения ! 4 апреля 2013 четверг


15-1365107403
Юрий
2013-04-05 00:30
2013.09.15
С днем рождения ! 5 апреля 2013 пятница




   Наверх