![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 17.02.2011
Сообщений: 13
|
![]()
Доброго времени суток.
мне нужно получить из иконки байты цветов, но я не знаю как... HBITMAP я получил так: HICON hIconLarge; ExtractIconEx("q.ico",0,&hIconLarge ,NULL, 1); ICONINFO oIconInfo; if(GetIconInfo(hIconLarge, &oIconInfo)==0) ShowMessage("Error"); oIconInfo.hbmColor;// здесь HBITMAP а что дальше делать не знаю. Буду очень благодарен за помощь(= |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 05.10.2011
Сообщений: 368
|
![]()
конвертирование иконки в битмап
Код:
Не стоит будить спящего Бога! (с) Меланхолия Харухи Судзумии
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 17.02.2011
Сообщений: 13
|
![]()
у иконки же может быть альфа канал, а по моему с помощью GetDIBits можно получить только RGB
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 17.02.2011
Сообщений: 13
|
![]()
или я где-то не прав ?
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 05.10.2011
Сообщений: 368
|
![]()
если я не ошибаюсь, то в стандартное windows-иконке альфа-канала нет
Не стоит будить спящего Бога! (с) Меланхолия Харухи Судзумии
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 17.02.2011
Сообщений: 13
|
![]()
Вообще мне надо взять иконку из .exe и её цвета перенести в текстуру в OpenGl,
для этого мне нужно просто получить набор байтов RGBA... по моему альфа канал есть, иначе как делаются полупрозрачные иконки(значёк корзины в вин7). |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 05.10.2011
Сообщений: 368
|
![]()
да, я ошиблась, альфа-канал иконок поддерживается начиная с Windows XP. а как получить альфа канал не знаю.
а что даёт функция GetDIBits при использовании иконки с альфа-каналом?
Не стоит будить спящего Бога! (с) Меланхолия Харухи Судзумии
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 17.02.2011
Сообщений: 13
|
![]()
ну или hdc иконки из ехе файла как-то можно получить или с какого по какой байт она располагается, хоть что-нибудь
|
![]() |
![]() |
![]() |
#9 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
![]()
если нужна картинка как массив пикселей с цветами, то нужно делать как сказала haruhi : HICON -> HBITMAP -> GetDIBits
|
![]() |
![]() |
![]() |
#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 |