2009-02-11 9 views
5

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

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

+0

Вы хотите изменить размер? – cgreeno

+0

Да, вот что я имею в виду. –

ответ

4

Вам нужно пройти через рамки в анимированном GIF и изменить размер каждого из них.

Также может посмотреть GifLib.

+0

Большое спасибо, я посмотрю. –

2

Взял меня некоторое время, чтобы найти это, но, наконец, нашли решение:

Установка 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"); 
} 

Из моих тестов это работает с альфа-каналами и различными частотами кадров. Кажется, это прекрасно!