如何使用 ImageSharp 创建 Gif .net Core2



有什么方法可以使用ImageSharp从.net core2中的某些jpeg创建gif吗?

我可以用 Magick.Net 从一些 jpeg 创建一个 gif,但它在 Linux 上不起作用。

我想在 Ubuntu 14 上这样做。

编辑

我可以使用ImageSharp从Jpegs创建一个GIF。这是我的源代码:

        var ite = fsArray.GetEnumerator(); // fsArray is FileStream Array
        ite.MoveNext();
        using (var image1 = Image.Load(ite.Current.Name))
        {
            image1.Mutate(x => x.Resize(width, height));
            // loop
            while (ite.MoveNext())
            {
                using (var image2 = Image.Load(ite.Current.Name))
                {
                    image2.Mutate(x => x.Resize(width, height));
                    image2.Frames.First().MetaData.FrameDelay = interval;
                    image1.Frames.AddFrame(image2.Frames.First());
                }
            }
            msGif = new FileStream("result.gif", FileMode.CreateNew);
            var gifEnc = new SixLabors.ImageSharp.Formats.Gif.GifEncoder();
            image1.Save(msGif, gifEnc);
            msGif.Close();
        }
  1. 加载您的两个图像
  2. 将第二个图像中的第一帧(缩放后(作为ImageFrame<T>添加到第一个图像上的 Frames 属性中。
  3. 将输出图像另存为 gif。

将图像另存为 GIF 时会自动进行量化。目前,将为每个帧生成一个单独的调色板。

using (var image1 = Image.Load(instream1))
using (var image2 = Image.Load(instream2))
{
  image2.Mutate(x => x.Resize(image1.Width, image1.Height));
  image1.Frames.AddFrame(image2.Frames[0]);
  image1.Save(outstream, new GifEncoder());
}

最新更新