How to resize an animated gif image using C#?
-
22-08-2019 - |
Question
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.
Solution
You need to loop through the frames in the animated GIF and resize each one.
May also want to take a look at GifLib.
OTHER TIPS
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!
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow