C#告诉静态GIF,除了动画GIF

时间:2010-05-17 11:43:59

标签: c# image types gif

我会简短而简单;

有没有办法告诉静态GIF图像除了动画图像?我正在使用C#。

由于

3 个答案:

答案 0 :(得分:26)

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.");

我认为你可以将它与1进行比较。

答案 1 :(得分:5)

System.Drawing.ImageAnimator.CanAnimate 自.NET 1.1起可用。

来自MSDN

  

返回一个布尔值,指示指定的图像是否包含基于时间的帧。

示例:

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

答案 2 :(得分:1)

与静态GIF相比,

Wikipedia有一些动画GIF布局的信息。

  

动画GIF文件包括要连续显示的多个图像或帧,每个图像或帧由其自己的GCE(图形控制扩展)描述,其前面是标题,其内容默认应用于所有帧。在标题之后,数据是面向流的而不是固定索引,因此GCE开始的位置取决于先前GCE的长度。