有什么方法可以使用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();
}
- 加载您的两个图像
- 将第二个图像中的第一帧(缩放后(作为
ImageFrame<T>
添加到第一个图像上的Frames
属性中。 - 将输出图像另存为 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());
}