2009-02-11 7 views
5

Gibt es eine Methode zum Erstellen einer Kopie eines animierten GIF-Bilds mit C#?Wie verändere ich ein animiertes GIF-Bild mit C#?

Was ich möchte, ist eine Kopie eines gegebenen GIF-Bild mit den Höhe und Breite Parameter, die der Benutzer bietet zu erzeugen. Ich habe einige Stunden versucht, dies zu erreichen, aber das resultierende Bild behält die ursprünglichen Animationen nicht bei.

+0

Sie meinen, dass die Größe korrekt ist? – cgreeno

+0

Ja, das ist was ich meine. –

Antwort

4

Sie müssen die Frames im animierten GIF durchlaufen und die Größe ändern.

Vielleicht möchten Sie auch einen Blick auf GifLib werfen.

+0

Vielen Dank, ich werde es mir ansehen. –

2

mir dauerte eine Weile, dies zu finden, aber endlich eine Lösung gefunden:

installieren Magick.NET über NuGet, Lizenz finden Sie hier:
https://magick.codeplex.com/license

Beispielcode:

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

Aus meinen Tests funktioniert dies mit Alpha-Kanälen und unterschiedlichen Frameraten. Scheint perfekt zu sein!