Преобразовать изображение в файл .ICO без потери глубины цвета (и без установки дополнительных утилит)? - PullRequest
1 голос
/ 02 сентября 2011

В форме у меня есть ImageList с именем MainLogoImageList, содержащий 32-битное изображение с глубиной цвета 100x100 пикселей. Это логотип моего приложения.

Мне лень настроить редактор значков и отредактировать значок этого логотипа или преобразовать изображение в файл .ICO. (Эх, ну, мне не разрешено устанавливать пользовательские утилиты.)

Чтобы установить значок моих форм, я использую

Icon = IconFromImage(MainLogoImageList.Images(0))

в обработчике событий OnLoad для установки значка окна.

В моем окне about, у меня есть PictureBox без изображения. В событии OnLoad я использую

LogoPictureBox.Image = MyMainForm.MainLogoImageList.Images(0)
Icon = IconFromImage(MyMainForm.MainLogoImageList.Images(0))

для установки значка и содержимого окна About.

Пока все хорошо, значок выглядит довольно неплохо для существа, созданного из растрового изображения размером 100x100 пикселей.

Существует ли простой способ "не требуется утилита" :-), чтобы получить значок, который был возвращен, мой IconFromImage сохранен в файле .ICO, чтобы он сохранял глубину цвета при загрузке в качестве значка приложения. ? Я хочу использовать именно тот значок, который создает IconFromImage.

Сохранение с помощью

Dim S As New FileStream("MyAppIcon.ico", FileMode.Append, FileAccess.Write, FileShare.Write)
Icon.Save(S)
S.Close()

в обработчике событий OnLoad основной формы и загрузка этого .ICO-файла в качестве значка приложения в диалоговом окне свойств проекта VS дает значок и значок, который явно преобразуется в 16 цветов и выглядит ужасно.

Это VB 10 Express.

1 Ответ

2 голосов
/ 03 сентября 2011

Следуя совету мудрого, возьмите этот дом, отредактируйте и преобразуйте его там.

Gimp @ home на работе.

Работает нормально, отлично выглядит.

Решение без кода лучше, чем вообще без решения: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...