Извлечение иконки из файла на C#
В Microsoft Windows все файлы имеют соответствующий значок, который может помочь пользователю быстро определить тип файла. Значки могут быть встроены в исполняемый файл или динамически подключаемую библиотеку (DLL) или храниться в файле значков. В каждом случае легко получить доступ к значку.
Значки (иконки) файлов
Каждый тип файлов, распознаваемый Microsoft Windows, имеет связанный с ним значок, который отображается в различных приложениях, включая проводник Windows. Если файл неизвестного типа, вместо него отображается значок по умолчанию. Если вы пишете программное обеспечение, которое работает с файлами, вы можете захотеть отобразить значки файлов аналогичным образом. Это может быть достигнуто с помощью класса значков.
Класс значков находится в пространстве имен System.Drawing. Экземпляры класса можно использовать для представления значков Windows и получения информации, относящейся к этим значкам, или для их преобразования в другие форматы. Класс также включает в себя некоторые статические методы, один из которых можно использовать для получения значка файла. Этот метод называется "ExtractAssociatedIcon" и возвращает экземпляр значка, содержащий изображение для файла. Путь к файлу указывается с помощью единственного параметра метода.
В этой статье мы создадим простой проект Windows Forms, который позволит пользователю выбрать файл. Затем значок файла будет отображаться в собственном формате и после преобразования значка в растровое изображение.
Создание примера программы
Чтобы создать программу, запустите новый проект Windows Forms. Добавьте следующие три элемента управления и компонента в форму по умолчанию, перетащив их из панели инструментов и расположив по желанию:
Извлечение ico
Извлечение значка произойдёт, когда пользователь нажмет на кнопку. При этом откроется диалоговое окно "Открыть файл", в котором можно выбрать файл. При нажатии кнопки " ОК " будет получен соответствующий значок для типа файла, который будет использоваться в качестве значка основной формы, как показано в строке заголовка и на панели задач. Затем значок будет преобразован в растровое изображение с помощью метода ToBitmap и отображен в элементе управления PictureBox.
Чтобы добавить функциональность, создайте событие щелчка для кнопки и добавьте следующий код:
if (FileSelectionDialog.ShowDialog() == DialogResult.OK) { Icon icon = Icon.ExtractAssociatedIcon(FileSelectionDialog.FileName); this.Icon = icon; IconArea.Image = icon.ToBitmap(); }Теперь вы можете запустить программу, чтобы увидеть извлечение файла ico в действии.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.