Imagemagick C#动画.gif

时间:2016-02-14 20:23:37

标签: c# imagemagick animated

我很好奇如何使用imagemagick库类在C#中创建动画.gif。这是我到目前为止所使用的:

using (MagickImageCollection collection = new MagickImageCollection())
{
    //collection.CacheDirectory = @"C:\MyProgram\MyTempDir";
    // Add first image and set the animation delay to 100ms
    //MagickNET.Initialize(@"C:\Users\johsam\Downloads\Magick\MagickScript.xsd");
    collection.Add("Koala.jpg");
    collection[0].AnimationDelay = 1;

    // Add second image, set the animation delay to 100ms and flip the image
    collection.Add("Desert.jpg");
    collection[1].AnimationDelay = 100;
    collection[1].Flip();

    // Optionally reduce colors
    QuantizeSettings settings = new QuantizeSettings();
    settings.Colors = 256;
    collection.Quantize(settings);

    // Optionally optimize the images (images should have the same size).
    collection.Optimize();

    // Save gif
    collection.Write("test.Animated.gif");
}

问题是虽然它创建了.gif,但是当你打开它时没有动态图像。你如何将图像串联起来创建一个动态图像?

1 个答案:

答案 0 :(得分:1)

您使用的代码似乎是codeplex site提供的示例。逻辑似乎按预期工作,但我的假设是,集合中初始图像上的动画延迟太小(1毫秒)。你可以说只能看到第二张图片。请增加动画延迟(至100毫秒),然后确认。完成后,您可以适当地调整延迟,以产生所需输出的间隔。