我会简短而简单;
有没有办法告诉静态GIF图像除了动画图像?我正在使用C#。
由于
答案 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)
Wikipedia有一些动画GIF布局的信息。
动画GIF文件包括要连续显示的多个图像或帧,每个图像或帧由其自己的GCE(图形控制扩展)描述,其前面是标题,其内容默认应用于所有帧。在标题之后,数据是面向流的而不是固定索引,因此GCE开始的位置取决于先前GCE的长度。