2009-02-11 21 views
5

¿Hay algún método para crear una copia de una imagen animada de GIF usando C#?¿Cómo cambiar el tamaño de una imagen animada de GIF usando C#?

Lo que quiero es generar una copia de una imagen dada gif usando los parámetros de alto y ancho que proporciona el usuario. Lo he intentado durante un par de horas para lograr esto, pero la imagen resultante no conserva las animaciones originales.

+0

¿Quieres decir cambiar el tamaño correcto? – cgreeno

+0

Sí, eso es lo que quiero decir. –

Respuesta

4

Tienes que recorrer los cuadros en el GIF animado y cambiar el tamaño de cada uno.

También quisiera echar un vistazo a GifLib.

+0

Muchas gracias, voy a echar un vistazo. –

2

Me tomó un tiempo para encontrar esto, pero finalmente encontró una solución:

Instalar Magick.NET través NuGet, la licencia se puede encontrar aquí: Código
https://magick.codeplex.com/license

Ejemplo:

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

Según mis pruebas, esto funciona con canales alfa y velocidades de cuadro variables. Parece ser perfecto!

Cuestiones relacionadas