C# Отображение анимированного GIF-файла в WinForms

Анимированный GIF

Анимированным GIF-файлом C# можно легко управлять. Отображение анимированных GIF-файлов в C# стало невероятно простым, начиная с .NET Framework 2.0. Необходимы параметры для отображения анимированного GIF-файла, автоматически обрабатываемого платформой .NET Framework, или вручную для точного управления анимацией изображения.

Автоматический способ — C# PictureBox

Первым способом отображения анимированного GIF-файла в C# является использование элемента управления PictureBox. Установив свойство Image элемента управления PictureBox в анимированный GIF-файл, PictureBox автоматически отобразит анимацию:

C# делает вещи такими простыми, не так ли? Недостатком этого метода является то, что вы, как программист, не имеете никакого контроля над FPS (кадрами в секунду) анимации или над тем, как она зацикливается.

Если вы хотите справиться с этими вещами самостоятельно, нам нужен код C# для ручного доступа к кадрам в анимации.

Ручной способ — Извлечение кадров

Есть две вещи, которые нам нужны для обработки анимированных GIF с чисто C# кодом. Для обоих потребуется пространство имен System.Drawing.Imaging.

Сначала нам нужно подсчитать общее количество кадров в анимированном GIF. Используйте комбинацию классов Image и FrameDimension:

Вторая часть заключается в фактическом доступе к нужному кадру. Используйте следующую строку кода:

Анимированный класс GIF C#

Сейчас мы создадим класс C#, который будет автоматически обрабатывать извлечение кадров из анимированных GIF-файлов C#.

 

‎Заключение‎

‎Есть несколько вещей, которые следует иметь в виду. Функция ‎‎SelectActivateFrame‎‎ C# изменяет тот же объект Image, и в этом случае необходимо вызвать метод ‎‎Clone()‎‎ перед возвратом нового фрайма.‎

‎Приведенный выше класс C# для отображения анимированных GIF-файлов также показывает небольшой пример возможностей ручного извлечения кадров из GIF. Одна из них заключается в том, что кадры отображаются в обратном порядке, когда анимация достигает конца. Функция GetFrame C# обеспечивает прямой доступ к любому кадру, который открывает дополнительные возможности для пользовательского отображения

Обновлено: 08.01.2022 — 16:49

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.