Извлечение иконки из файла C#


В Microsoft Windows все файлы имеют соответствующий значок (иконку), который может помочь пользователю быстро определить тип файла. Иконки могут быть встроены в исполняемую или динамическую связанную библиотеку (DLL) или храниться в файле значков. В каждом случае легко получить доступ к значку.

Иконки файлов

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

Класс Icon находится в пространстве имен System.Drawing. Экземпляры класса могут использоваться для представления значков Windows и получения информации, относящейся к этим значкам, или для преобразования их в другие форматы. Класс также включает в себя некоторые статические методы, один из которых может быть использован для получения значка файла. Этот метод называется "ExtractAssociatedIcon" и возвращает экземпляр значка, содержащий изображение для файла. Путь к файлу задается с помощью единственного параметра метода.

Давайте создадим простой проект Windows Forms, который позволит пользователю выбрать файл. Затем значок файла будет отображаться в собственном формате и после преобразования значка в растровое изображение.

Создание примера программы

Чтобы создать программу, запустите новый проект Windows Forms. Добавьте следующие три элемента управления и компонента в форму по умолчанию, перетащив их из панели инструментов и расположив по желанию:

Извлечение иконки

Извлечение значка произойдет, когда пользователь нажмет на кнопку. При этом откроется диалоговое окно открыть файл, в котором можно выбрать нужный файл. При нажатии кнопки OK соответствующий значок типа файла будет получен и использован в качестве значка основной формы, как показано в строке заголовка и панели задач. Затем значок будет преобразован в растровое изображение с помощью метода ToBitmap и отображен в элементе управления PictureBox.

Чтобы добавить функциональность, создайте событие Click для кнопки и добавьте следующий код:

if (FileSelectionDialog.ShowDialog() == DialogResult.OK)
{
    Icon icon = Icon.ExtractAssociatedIcon(FileSelectionDialog.FileName);
    this.Icon = icon;
    IconArea.Image = icon.ToBitmap();
}
Теперь вы можете запустить программу, чтобы увидеть извлечение значка в действии.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

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




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




Урок 10. Операторы побитового сдвига C#
Реальная работа с yield (PHP)
Быстрое построение графика на JS