将GIF格式的图片逐帧转成PNG图片
作者:互联网
背景介绍
我们在使用GIF格式的图片时,有需要将GIF逐帧按顺序转换为PNG静态图片的需求,例如:使用Pygame加载GIF资源需要先把GIF图片逐帧转换成PNG格式,再load到画布。类似的场景很有很多。
笔者在使用网络上的工具讲GIF图逐帧转换为PNG静态图的时候发现存在以下问题:
- 网页工具广告多,大部分需要收费,少部分无法满足需求,存在欺骗有点网友点击的行为。
- 需要下载的CS类型的工具,大部分无法使用。免安装能够直接使用的几乎没有。
求人不如求己!自己动手!
windows平台,有操作界面,非C# WinForm莫属。
界面设计
界面风格延续本人工具软件UI设计的:简洁,优雅,朴素,一键完成风格。
实现原理
- Load GIF图片,转Image对象;
Image imgGif = Image.FromFile(this.textBox1.Text, true);
- 通过Image获取ImgFrmDim
var ImgFrmDim = new FrameDimension(imgGif.FrameDimensionsList[0]);
- 获取总帧数,遍历每一帧,然后ImgFrmDim获取活动帧,save到本地。
image.GetFrameCount(ImgFrmDim) //获取总帧数
image.SelectActiveFrame(ImgFrmDim, i); //选择当前活动帧
image.Save(currentPath + string.Format(@"image{0}.png", i), ImageFormat.Png);//当前帧图片Save到本地
下载地址
如果大家不想自己动手,可以直接下载编译好的可运行文件直接使用。
地址:https://download.csdn.net/download/lenovo96166/15485940;
后记
关于工具界面上的赞赏码,如果大家介意可以视而不见,置之不理。理所应当的下载使用就OK了。
如果这个工具帮到了你,你手头宽裕,做人讲究,微信扫一下赞赏码,打赏作者一二。
如果你需要源码,私信我吧!
标签:Image,GIF,ImgFrmDim,图片,image,PNG,逐帧 来源: https://blog.csdn.net/lenovo96166/article/details/114168737