问题
Is there a method to create a copy of an animated gif image using C#?
What I want is to generate a copy of a given gif image using the height and width parameters that the user provides. I have tried for a couple of hours to accomplish this but the resulting image does not preserve the original animations.
回答1:
You need to loop through the frames in the animated GIF and resize each one.
May also want to take a look at GifLib.
回答2:
Took me a while to find this, but finally found a solution:
Install Magick.NET via NuGet, license can be found here:
https://magick.codeplex.com/license
Example code:
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");
}
From my tests, this works with alpha channels and varying frame rates. Seems to be perfect!
来源:https://stackoverflow.com/questions/539034/how-to-resize-an-animated-gif-image-using-c