#.net #image #icons #embedded-resource
#.net #изображение #gdi #Значки
Вопрос:
Файлы значков (*.ico) могут содержать несколько изображений разных размеров и разной глубины цвета.
Как я могу получить System.Drawing.Image
объект из .ico
файла?
Есть Image.FromFile(...)
один из вариантов, но для файлов значков с несколькими изображениями невозможно указать, какой размер изображения и глубину цвета возвращать.
В идеале решение должно использовать только управляемый код, но я рад услышать и о вызовах взаимодействия с функциями Win32.
Комментарии:
1. Почему понижающий голос? Я что-то упускаю?
Ответ №1:
Простой ответ на все ваши вопросы: IconLib
Комментарии:
1. Спасибо за эту ссылку. Выглядит как отличная статья. Мне это больше не нужно, но в следующий раз, когда я буду работать со значками, я обязательно проверю эту библиотеку. Надеюсь, ваш ответ поможет и другим. На данный момент это лучший ответ, поэтому я принял его, хотя, если появится более простой ответ, который не требует внешних библиотек, я бы предпочел это.
Ответ №2:
Система.Рисование.Значок может загружать указанный размер из файла. Однако я не знаю о глубине. http://msdn.microsoft.com/en-us/library/ms142130.aspx
Комментарии:
1. Кажется, за исключением размеров выше 48×48.
Ответ №3:
Вам нужно будет использовать
Dim icon As System.Drawing.Icon
icon = icon.FromHandle(hIcon)
В структуре hIcon вы можете указать глубину цвета
Эти ссылки направят вас в правильном направлении: