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.

Was it helpful?

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
scroll top