2010-03-09 2 views
2

Я разрабатываю приложение WinForms C# 3.0. Наш дизайнер создал довольно много файлов .ico, содержащих все необходимое искусство. Выбор .ico был сделан потому, что довольно часто одно и то же изображение требуется в нескольких местах разных размеров.Как использовать файлы .ico в приложении Winforms?

Теперь, кажется. Файлы .ico действительно раздражает, чтобы использовать в визуальной студии. Единственный способ использовать эти изображения - это список изображений (которые не поддерживаются всеми элементами управления). По сравнению с другими ресурсами, вы не можете писать так:

foo.Image = global::RFQHUB.RFQHUBClient.Properties.Resources.foo; // Cannot implicitly convert type 'System.Drawing.Icon' to 'System.Drawing.Image' 

Вот варианты я рассматриваю:

  • создать ImageLists всех возможных размеров, ссылающихся все мои иконки в моем главном окне. Свяжите эти ImageLists с другими окнами и найдите способ экспорта объектов Image из ImageList, когда я не могу использовать его напрямую; поскольку ImageList содержит метод Draw(), возможно, это возможно.
  • конвертировать все x.ico У меня есть несколько x16.gif ... x48.gif и использовать их через ресурсы.

Мне было бы интересно узнать, успешно ли использовали некоторые ресурсы .ico в приложении Winform. Итак, как вы создали вещи?

ответ

3

ICO не совсем устаревший формат, но он близок. Он по-прежнему полезен для вашего приложения, но для почти всего остального лучше использовать ImageList для каждого размера, который вам нужен. И намного быстрее заполнить ImageList из растрового изображения, содержащего несколько изображений, выложенных в сетке.

Вы также хотите использовать прозрачность альфа-канала в своих растровых изображениях, чтобы получить лучший результат, поэтому сохранить их как .PNG-файлы в ваших ресурсах - лучший способ, поскольку PNG поддерживает альфа-канал. Файлы ICO и GIF поддерживают только один бит для прозрачности - каждый пиксель либо полностью непрозрачен, либо полностью прозрачен. 8-битный альфа-канал для прозрачности выглядит намного приятнее.

Если вы можете отправить своего художника обратно на чертежную доску, тогда вы должны сделать это и сделать его/ее полностью сглаженные изображения с альфой. Если вы не можете, я предлагаю вам написать небольшую программу для преобразования всех ваших файлов значков в растровые изображения, подходящие для загрузки в ImageLists.

+0

IcoFX (http://icofx.ro/) - бесплатное программное обеспечение, которое поддерживает пакетное преобразование с .ico на .png. Весь процесс преобразования занял у меня около 10 секунд для сотен файлов – Brann

2

Преобразование изображений в PNG. Точка. Тот, кто решил использовать файлы .ico для начала, должен поговорить наедине - аргумент не имеет оснований.

+1

«Период» чаще встречается, чем «Точка». –

Смежные вопросы