Lo mantendré corto y simple;C# Diga los GIF estáticos aparte de los animados
¿Hay alguna manera de distinguir las imágenes GIF estáticas de las animadas? Estoy usando C#.
Gracias
Lo mantendré corto y simple;C# Diga los GIF estáticos aparte de los animados
¿Hay alguna manera de distinguir las imágenes GIF estáticas de las animadas? Estoy usando C#.
Gracias
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.");
Y supongo que usted podría compararlo con 1.
Wikipedia tiene alguna información sobre el diseño de un GIF animado en comparación con una estática.
un archivo GIF animado comprende una serie de imágenes o fotogramas que se mostrará sucesivamente, cada uno descrito por su propia CME (Extensión de Control Gráfico), precedida por una cabecera cuyo contenido por defecto se aplica a todos los marcos. Después del encabezado, los datos están orientados a la transmisión en lugar de estar en índices fijos, por lo que la ubicación del inicio de una GCE depende de la longitud de la (s) GCE (s) anterior (es).
System.Drawing.ImageAnimator.CanAnimate ha estado disponible desde .NET 1.1.
De MSDN:
devuelve un valor booleano que indica si la imagen especificada contiene marcos basados en el tiempo.
Ejemplo:
using (Image image = Image.FromFile("somefile.gif"))
{
if (ImageAnimator.CanAnimate(image))
{
// GIF is animated
}
else
{
// GIF is not animated
}
}
+1 artículo Hardcore en una pequeña fuente! ¿Podría pegar un fragmento del código aquí y vincularlo también al artículo? De modo que si la página o el sitio se elimina la respuesta no se pierde. – amelvin
@amelvin: buena idea. veo que jeff ya lo ha hecho, ahora =) @jeff atwood: ¡accesorios para cambiar los nombres de variables a convenciones! –
Gracias por agregar el código aquí, el sitio web ya no está disponible. – flayn