public void ExportFromGif(string gifFile,string outputDir)
{
Bitmap bmp = new Bitmap(gifFile);
if (bmp.RawFormat.Guid != ImageFormat.Gif.Guid)
{
throw new Exception("不是gif格式的文件,格式错误!");
}
//获得桢的维数
foreach (Guid guid in bmp.FrameDimensionsList)
{
FrameDimension frameDimension = new FrameDimension(guid);
//获得gif动画桢的数量
int frameCount = bmp.GetFrameCount(frameDimension);
//用于存放导出的图像
for (int i = 0; i < frameCount; i++)
{
//选中一桢
int selectResult = bmp.SelectActiveFrame(frameDimension, i);
if (selectResult == 0)
{
Image img = Image.FromHbitmap(bmp.GetHbitmap());
string savePath = outputDir + Guid.NewGuid().ToString()+".jpg";
img.Save(savePath);
img.Dispose();
}
}
}
}
}