如何使用C#调整动画gif图像的大小?

时间:2009-02-11 22:01:30

标签: c# image gif animated-gif

是否有使用C#创建动画gif图像副本的方法?

我想要的是使用用户提供的高度和宽度参数生成给定gif图像的副本。我已经尝试了几个小时来完成此操作,但生成的图像不能保留原始动画。

2 个答案:

答案 0 :(得分:4)

您需要遍历动画GIF中的帧并调整每个帧的大小。

也许还想看看GifLib

答案 1 :(得分:4)

我花了一段时间才找到这个,但终于找到了解决方案:

通过NuGet安装 Magick.NET ,可在此处找到许可证:
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");
}

从我的测试中,这适用于alpha通道和不同的帧速率。似乎是完美的!