pastapockets
pastapockets

Reputation: 1108

C# Tell static GIFs apart from animated ones

I'll keep it short and simple;

is there any way of telling static GIF images apart from animated ones? I'm using C#.

Thanks

Upvotes: 26

Views: 3413

Answers (2)

deadpixel
deadpixel

Reputation: 61

System.Drawing.ImageAnimator.CanAnimate has been available since .NET 1.1.

From MSDN:

Returns a Boolean value indicating whether the specified image contains time-based frames.

Example:

using (Image image = Image.FromFile("somefile.gif"))
{
    if (ImageAnimator.CanAnimate(image))
    {
        // GIF is animated
    }
    else
    {
        // GIF is not animated
    }
}

Upvotes: 6

David Hedlund
David Hedlund

Reputation: 129812

Here's an article about how to determine the number of frames in a GIF animation.

Image i = Image.FromFile(Server.MapPath("AnimatedGIF.gif"));

Imaging.FrameDimension FrameDimensions = 
    new Imaging.FrameDimension(i.FrameDimensionsList[0]);

int frames = i.GetFrameCount(FrameDimensions);

if (frames > 1) 
    Response.Write("Image is an animated GIF with " + frames + " frames");
else 
    Response.Write("Image is not an animated GIF.");

And I assume you could just compare that with 1.

Upvotes: 29

Related Questions