使用codeplex的GifCreator http://gifcreator.codeplex.com 来处理Gif文件

引用库文件Gif.Components.dll

1、把Gif文件转成Png文件

        /// <summary>/// 把Gif文件转成Png文件,放在directory目录下/// </summary>/// <param name="file"></param>/// <param name="directory"></param>/// <returns></returns>public static void GifToPngs(string giffile, string directory){GifDecoder gifDecoder = new GifDecoder();directory += "\\";if (!Directory.Exists(directory)){Directory.CreateDirectory(directory);}//读取
            gifDecoder.Read(giffile);for (int i = 0, count = gifDecoder.GetFrameCount(); i < count; i++){Image frame = gifDecoder.GetFrame(i);  // frame iframe.Save(directory + "\\" + i.ToString("d2") + ".png", ImageFormat.Png);//转成jpg//frame.Save(directory + "\\" + i.ToString("d2") + ".jpg", ImageFormat.Jpeg);
            }}

2、把多张Png文件转成Gif文件

        /// <summary>/// 把directory文件夹里的png文件生成为gif文件,放在giffile/// </summary>/// <param name="directory">png文件夹</param>/// <param name="giffile">gif保存路径</param>/// <param name="time">每帧的时间/ms</param>/// <param name="repeat">是否重复</param>public static void PngsToGif(string directory, string giffile, int time, bool repeat){//一般文件名按顺序排string[] pngfiles = Directory.GetFileSystemEntries(directory, "*.png");AnimatedGifEncoder e = new AnimatedGifEncoder();e.Start(giffile);//每帧播放时间e.SetDelay(500);//-1:不重复,0:重复e.SetRepeat(repeat?0:-1);for (int i = 0, count = pngfiles.Length; i < count; i++){e.AddFrame(Image.FromFile(pngfiles[i]));}e.Finish();}

  由于Gif的转换和生成速度比较慢,所以一般放在新的线程进行操作

库文件

http://files.cnblogs.com/bomo/Gif.Components.zip

【C#】Gif文件生成相关推荐

  1. gsoap 学习 1-由wsdl文件生成h头文件

    开始前先看一下用户向导吧 http://www.cs.fsu.edu/~engelen/soap.html 中左侧点击Documentation 英语水平确实有限,有些内容可能说的不准确,敬请参考向导 ...

  2. Linux 系统上的库文件生成与使用

    什么是库文件? 库是一组预先编译好的方法的集合.Linux系统存储的库的位置一般在:/lib 和 /usr/lib. 在 64 位的系统上有些库也可能被存储在/usr/lib64 下.库的头文件一般会 ...

  3. Caffe将自己的文件生成lmdb

    参考网站: http://www.cnblogs.com/darkknightzh/p/5909121.html (linux下) http://www.mamicode.com/info-detai ...

  4. pyinstaller打包py文件生成的exe出现闪退问题

    在使用pyinstaller打包py文件生成可执行文件exe出现闪退问题,解决方法: 在需要打包的py文件中的主函数最后一行添加如下代码: python2: raw_input('please inp ...

  5. Python将py文件生成exe文件

    使用PyCham软件运行生成可执行文件后,最完美的就是将py文件生成exe文件,这样可以任意复制移植到其他电脑上,供他人共享. 由于新手初步尝试,自己一个人摸索,遇到了很多坑.这里先给出最简单有效的方 ...

  6. python生成表格文件_python 读取excel文件生成sql文件实例详解

    python 读取excel文件生成sql文件实例详解 学了python这么久,总算是在工作中用到一次.这次是为了从excel文件中读取数据然后写入到数据库中.这个逻辑用java来写的话就太重了,所以 ...

  7. pcap文件生成metadata——使用tshark解析tcpdump的pcap包

    pcap文件生成metadata #!/usr/bin/env python # -*- coding: utf-8 -*-import os import time, datetime import ...

  8. 使用Cython库包对python的py文件(源码)进行加密,把python的.py文件生成.so文件并调用

    文章目录: 1 准备环境 2 调用`Cython库包`把python的`.py`文件生成`.so`文件 2.1 写源码文件 2.2 调用源码接口 2.3 调用Cython库把`.py`源码生成`.so ...

  9. ProtoBuffer由.proto文件生成.cc/.h

    ProtoBuffer由.proto文件生成.cc/.h 一:编译源码 下载地址:http://code.google.com/p/protobuf/downloads/list  下载后,根据编译说 ...

  10. 【开发环境】Java 文件生成 Windows 系统 .bat 批处理文件并自动执行 ( 输出 GB2312 格式处理中文乱码 | \r\n换行 | Runtime 执行 Cmd 命令 )

    文章目录 Java 文件生成 Windows 系统 .bat 批处理文件并自动执行 1.生成 bat 脚本注意事项 2.Java 执行 Cmd 命令 3.完整代码示例 4.执行结果 Java 文件生成 ...

最新文章

  1. sqoop连接hive和mysql_用Sqoop进行Hive和MySQL之间的数据互导
  2. QuikNode高性能以太坊节点服务【详细指南】
  3. android 6.0 logcat机制(二)logcat从logd中获取log保存到文件中
  4. c++读取txt文件中的数字_在Python中读取包中的数据文件的三种方式
  5. Linux 安装Opencv3.2
  6. 第五十四期:MongoDB与MySQL:如何选择
  7. Nginx反向代理其他使用方式
  8. Scala笔记整理(二):Scala数据结构—数组、map与tuple
  9. codeblocks同一工程下建立多个源文件
  10. java基础语法(三)--运算符、控制语句
  11. 北京市中小学信息学竞赛汇总 徐于铃
  12. Xcode Missing file的解决方案
  13. 沧小海笔记本之xilinx srio核的学习记录之目录
  14. 字符串转换成JSON
  15. 高效算法——05列文斯登距离(Python)
  16. 北邮复试 | 北邮机试往年题汇总 | 计算机院 | 网研院 | 网安院 | 软院
  17. PCL中的PointT类型
  18. 关于微信公众号回复消息乱码的问题
  19. 解构「私域流量」(一)|底层思维
  20. 【供应链 销售管理】业务单据:“销售订单”业务操作-“[销售订单-TYXXXSDD003866-修改]”冲突,请稍候再使用。

热门文章

  1. c盘扩展卷是灰色的_银行电脑win7-C盘满了怎么办
  2. 项目背景怎么描述_课程游戏背景下幼儿户外活动的组织和实施 ——记岱山县课程项目实施组活动...
  3. 怎么让电脑运行速度变快_分享几种电脑运行速度慢的解决方法_windows7教程
  4. Java项目:网上电商项目(前后端分离+java+vue+Springboot+ssm+mysql+maven+redis)
  5. java map class_java – 将通用Class参数限制为实现Map的类
  6. linux cp sync,通过SSH使用Rsync传输文件,复制和同步文件及目录
  7. hibernate 复合主键 根据主键删除_hibernate封装Utils工具类
  8. VMware虚拟机安装之后,打开时找不到启动Centos的界面
  9. 【如何快速的开发一个完整的iOS直播app】(采集篇)
  10. 按照文字内容动态设置TableViewCell的高度