|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.10.2011, 15:23 | #1 |
Пользователь
Регистрация: 17.02.2011
Сообщений: 13
|
работа с HBITMAP
Доброго времени суток.
мне нужно получить из иконки байты цветов, но я не знаю как... HBITMAP я получил так: HICON hIconLarge; ExtractIconEx("q.ico",0,&hIconLarge ,NULL, 1); ICONINFO oIconInfo; if(GetIconInfo(hIconLarge, &oIconInfo)==0) ShowMessage("Error"); oIconInfo.hbmColor;// здесь HBITMAP а что дальше делать не знаю. Буду очень благодарен за помощь(= |
14.10.2011, 15:29 | #2 |
Форумчанин
Регистрация: 05.10.2011
Сообщений: 368
|
конвертирование иконки в битмап
Код:
Не стоит будить спящего Бога! (с) Меланхолия Харухи Судзумии
|
14.10.2011, 15:33 | #3 |
Пользователь
Регистрация: 17.02.2011
Сообщений: 13
|
у иконки же может быть альфа канал, а по моему с помощью GetDIBits можно получить только RGB
|
14.10.2011, 15:39 | #4 |
Пользователь
Регистрация: 17.02.2011
Сообщений: 13
|
или я где-то не прав ?
|
14.10.2011, 16:06 | #5 |
Форумчанин
Регистрация: 05.10.2011
Сообщений: 368
|
если я не ошибаюсь, то в стандартное windows-иконке альфа-канала нет
Не стоит будить спящего Бога! (с) Меланхолия Харухи Судзумии
|
14.10.2011, 16:17 | #6 |
Пользователь
Регистрация: 17.02.2011
Сообщений: 13
|
Вообще мне надо взять иконку из .exe и её цвета перенести в текстуру в OpenGl,
для этого мне нужно просто получить набор байтов RGBA... по моему альфа канал есть, иначе как делаются полупрозрачные иконки(значёк корзины в вин7). |
14.10.2011, 16:30 | #7 |
Форумчанин
Регистрация: 05.10.2011
Сообщений: 368
|
да, я ошиблась, альфа-канал иконок поддерживается начиная с Windows XP. а как получить альфа канал не знаю.
а что даёт функция GetDIBits при использовании иконки с альфа-каналом?
Не стоит будить спящего Бога! (с) Меланхолия Харухи Судзумии
|
14.10.2011, 18:00 | #8 |
Пользователь
Регистрация: 17.02.2011
Сообщений: 13
|
ну или hdc иконки из ехе файла как-то можно получить или с какого по какой байт она располагается, хоть что-нибудь
|
14.10.2011, 18:45 | #9 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
если нужна картинка как массив пикселей с цветами, то нужно делать как сказала haruhi : HICON -> HBITMAP -> GetDIBits
|
17.10.2011, 11:46 | #10 |
Пользователь
Регистрация: 17.02.2011
Сообщений: 13
|
всем спасибо за помошь, я нашёл решение простое и вроде бы эффективное(=
весь код: HICON hIconLarge; ExtractIconEx("q.ico",0,&hIconLarge ,NULL, 1); ICONINFO oIconInfo; if(GetIconInfo(hIconLarge, &oIconInfo)==0) ShowMessage("0"); byte b[100]; GetBitmapBits(oIconInfo.hbmColor,5* 5,b);//5*5 размер иконки для теста Возвращает в b BGRA Последний раз редактировалось sover; 17.10.2011 в 11:49. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с объектом HBITMAP | Anubys | Win Api | 2 | 03.05.2011 13:07 |
Не выводит текст на HBitMap | Alex Cones | Общие вопросы Delphi | 7 | 26.12.2010 11:41 |
HBITMAP => DRAW | Alex Cones | Общие вопросы Delphi | 18 | 08.05.2010 18:52 |
Hbitmap из png | zumm | Мультимедиа в Delphi | 1 | 27.03.2010 20:55 |
Вывод HBITMAP | AidarBik | Win Api | 7 | 30.07.2008 14:21 |