我很好奇如何使用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,但是当你打开它时没有动态图像。你如何将图像串联起来创建一个动态图像?
答案 0 :(得分:1)
您使用的代码似乎是codeplex site提供的示例。逻辑似乎按预期工作,但我的假设是,集合中初始图像上的动画延迟太小(1毫秒)。你可以说只能看到第二张图片。请增加动画延迟(至100毫秒),然后确认。完成后,您可以适当地调整延迟,以产生所需输出的间隔。