Извлечение иконки из файла на 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 - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

тегизаметки, си шарп, .net, графика




Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.




Урок 39. Область действия блока JS
Рецепты, кулинария
Возможные проблемы при подключении к Firebird из Visual Studio