分离gif单帧图片:
方法1:
Image imgGif = Image.FromFile(fileNames[i]);//加载gif文件FrameDimension ImgFrmDim = new FrameDimension( imgGif.FrameDimensionsList[0] );
int nFrameCount = imgGif.GetFrameCount(ImgFrmDim);
for( int a = 0; a < nFrameCount; a++ )
{
imgGif.SelectActiveFrame( ImgFrmDim, a );
imgGif.Save( string.Format( "./导出/{0}.jpg", a ), ImageFormat.Jpeg );
PicBox.Image = imgGif;
}
------------------------------------------------------------------------------------------------------------------------------------------------
方法2:
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using Gif.Components;
string outputPath = "c:\\";
GifDecoder gifDecoder = new GifDecoder();
gifDecoder.Read("c:\\test.gif");
for (int i = 0, count = gifDecoder.GetFrameCount(); i < count; i++)
{
Image frame = gifDecoder.GetFrame(i); // frame i
frame.Save(outputPath + Guid.NewGuid().ToString() + ".png", ImageFormat.Png);
}
------------------------------------------------------------------------------------------------------------------------------------------------
合并gif:
AnimatedGifEncoder MyGif = new AnimatedGifEncoder();
MyGif.Start(path);//保存路径
MyGif.SetDelay(200);//帧率
MyGif.SetSize(300, 300);//尺寸
MyGif.SetRepeat(0);//重复
for(int i = 0; i<list_pic.Items.Count;i++)
{
MyGif.AddFrame(Image.FromFile(list_pic.Items[i].ToString()));//加入单张图片
}
MyGif.Finish();
测试小项目:
工程下载:
http://download.youkuaiyun.com/detail/wang03989/9618807
gif操作类库
http://download.youkuaiyun.com/detail/wang03989/9618833
本文介绍两种拆分GIF为单帧图片的方法及如何将单帧图片合成GIF。第一种方法使用.NET框架中的Image类实现;第二种方法利用Gif.Components库中的GifDecoder类实现。此外,还介绍了如何通过AnimatedGifEncoder类合成GIF。

被折叠的 条评论
为什么被折叠?



