6

有没有一种方法可以使用 C# 创建动画 gif 图像的副本?

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

4

2 回答 2

5

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

通过 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 通道和不同的帧速率。似乎很完美!

于 2017-01-03T11:32:23.480 回答
4

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

可能还想看看GifLib

于 2009-02-11T22:19:13.760 回答