如何使用 ImageSharp 创建 Gif .net Core2
How to create Gif .net Core2 , with ImageSharp
是否有任何方法可以使用 ImageSharp 从 .net core2 中的某些 jpeg 创建 gif?
我可以使用 Magick.Net 从一些 jpeg 文件创建 gif,但它在 Linux 上不起作用。
我想在 Ubuntu 14 日做这个
EDIT
我可以使用 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());
}
是否有任何方法可以使用 ImageSharp 从 .net core2 中的某些 jpeg 创建 gif?
我可以使用 Magick.Net 从一些 jpeg 文件创建 gif,但它在 Linux 上不起作用。
我想在 Ubuntu 14 日做这个
EDIT
我可以使用 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());
}