Cómo cambiar el tamaño de una imagen gif animado con C #?
-
22-08-2019 - |
Pregunta
¿Hay un método para crear una copia de una imagen gif animado con C #?
Lo que quiero es generar una copia de una imagen gif dada de utilizar los parámetros de altura y anchura que el usuario proporciona. He tratado durante un par de horas para lograr esto, pero la imagen resultante no conserva las animaciones originales.
Solución
Es necesario colocar a través de los fotogramas de la animación GIF y cambiar el tamaño de cada uno.
también puede querer echar un vistazo a giflib .
Otros consejos
Me tomó un tiempo para encontrar esto, pero finalmente encontró una solución:
Instalar Magick.NET a través de NuGet, la licencia se puede encontrar aquí:
https://magick.codeplex.com/license
código de 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");
}
De mis pruebas, esto funciona con canales alfa y diferentes velocidades de cuadro. Parece ser perfecto!