Главная страница
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.006 c
2-1357313213
jjiurafds
2013-01-04 19:26
2013.09.15
Можно ли такое сделать в SQL или нет???


15-1365280202
Юрий
2013-04-07 00:30
2013.09.15
С днем рождения ! 7 апреля 2013 воскресенье


15-1364391250
Sammi
2013-03-27 17:34
2013.09.15
Проблема с функцией Delphi -> C++


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


4-1267176656
istok
2010-02-26 12:30
2013.09.15
Запуск процесса под юзером...