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