Как изменить размер анимированного GIF-изображения с помощью C #? - PullRequest
5 голосов
/ 12 февраля 2009

Есть ли способ создать копию анимированного GIF-изображения с помощью C #?

Я хочу создать копию данного изображения в формате gif, используя параметры высоты и ширины, которые предоставляет пользователь. Я пытался сделать это пару часов, но полученное изображение не сохраняет исходную анимацию.

Ответы [ 2 ]

4 голосов
/ 03 января 2017

Мне потребовалось некоторое время, чтобы найти это, но, наконец, нашли решение:

Установка Magick.NET через NuGet, лицензию можно найти здесь:
https://magick.codeplex.com/license

Пример кода:

var newWidth = 100;
using (var collection = new MagickImageCollection(new FileInfo(@"C:\test.gif")))
{
    collection.Coalesce();
    foreach (var image in collection)
    {
        image.Resize(newWidth, 0);
    }
    collection.Write(@"c:\resized.gif");
}

Из моих тестов это работает с альфа-каналами и различной частотой кадров. Вроде бы идеально!

4 голосов
/ 12 февраля 2009

Вам нужно перебрать кадры в анимированном GIF-файле и изменить размер каждого из них.

Может также захотеть взглянуть на GifLib .

...