使用codeplex的GifCreator来操作

步骤:

一  获取动态链接库Gif.Components.dll

方式1:使用源码编译

第三方的源码地址如下:http://www.codeproject.com/Articles/11505/NGif-Animated-GIF-Encoder-for-NET

这个不好下载,要注册,我搞了好久都没能把它下载下来

方式2:从这位老兄的博客https://www.cnblogs.com/bomo/archive/2013/02/26/2932953.html中有得下载,我找了好久才找到的

方式3:从我的网盘下载(里面还包括了我下面要用到的测试图片):链接:https://pan.baidu.com/s/1INUkPqci-UUAI2wm994PsQ 
提取码:4pwa

二  新建一个winfom程序,并拖拽一个Button进去,如下图:

三   把从我的网盘下载的压缩包解压后放到bin/Debug目录下,并添加dll的引用

四   编写程序如下(参考别人的写的):

using Gif.Components;              //添加的命名空间
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace 多张图片合成Gif
{public partial class Form1 : Form{//用来区分gif保存的路径int count = 0;public Form1(){InitializeComponent();}/// <summary>/// 转换多张图片到一张gif/// </summary>/// <param name="src">多张图片的路径集合</param>/// <param name="gifPath">需要保存的gif的路径</param>/// <param name="time">每张图片播放的间隔时间</param>/// <param name="w">图片的宽度</param>/// <param name="h">图片的高度</param>/// <returns></returns>private bool ConvertJpgtoGif(string[] src, string gifPath,int time,int w,int h){try{AnimatedGifEncoder el = new AnimatedGifEncoder();el.Start(gifPath);el.SetDelay(time);//0:循环播放    -1:不循环播放el.SetRepeat(0);for (int i = 0, count = src.Length; i < count; i++){Image img = Image.FromFile(src[i]);//如果多张图片的高度和宽度都不一样,可以打开这个注释//img = ReSetPicSize(img, w, h);el.AddFrame(img);}el.Finish();return true;}catch (Exception e1){//MessageBox.Show(e1.Message);return false;}}/// <summary>/// 重新调整图片的大小,使其满足要求/// </summary>/// <param name="image"></param>/// <param name="newW"></param>/// <param name="newH"></param>/// <returns></returns>private Image ReSetPicSize(Image image, int newW, int newH){Bitmap bmp = new Bitmap(image);try{Bitmap b = new Bitmap(newW, newH);Graphics g = Graphics.FromImage(b);// 插值算法的质量 g.InterpolationMode = InterpolationMode.HighQualityBicubic;g.DrawImage(bmp, new Rectangle(0, 0, newW, newH), new Rectangle(0, 0, bmp.Width, bmp.Height), GraphicsUnit.Pixel);g.Dispose();// return b;Image img = (Image)b;//  MessageBox.Show("Width"+img.Width.ToString() + "Height:" + img.Height.ToString());return img;}catch{return null;}}/// <summary>/// 保存按钮点击事件/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void btnSave_Click(object sender, EventArgs e){//图片的路径集合string[] srcPath = { "image/jiafei1.jpg", "image/jiafei2.jpg", "image/jiafei3.jpg", "image/jiafei4.jpg", "image/jiafei5.jpg" };//转换后gif的保存路径,在Debug/bin目录下string gitPath = "test" + count + ".gif";//用来区分gif保存的路径count++;try{//开始转换ConvertJpgtoGif(srcPath, gitPath, 1000, 800, 600);MessageBox.Show("保存成功");}catch (Exception ex){MessageBox.Show(ex.Message);return;}}}
}

效果如下:

注意:转换耗时很长,建议开一个新的线程,我就5张图片,合成一张gif却耗时了5秒,不是我想要的效果

C# 实现多张图片合成一张gif(录屏可能会用到)相关推荐

  1. PIL实现两张图片合成一张,和图片加文字

    PIL实现两张图片合成一张,和图片加文字 文章目录: 一.PIL实现两张图片合成一张 1.方法一: 2.方法二 二.图片添加文字 首先说明一下: (小姐姐是谁,是my sweetheart ,请勿使用 ...

  2. 什么相片可以两张弄成一张_怎么将两张图片合成一张?

    有时候我们需要将两张图片放在一起相比较,但是两张图片相互切换对比起来比较困难,有没有什么办法将两张图片合成一张?方法是肯定有的,而且还是多种多样的,本文就给大家介绍一种对普通用户来说最简单方便快捷的方 ...

  3. 什么相片可以两张弄成一张_ps怎么把两张图片合成一张

    ps怎么把两张图片合成一张 图片应用在我们的生活中十分广泛,Photoshop似乎已经离不开我们的生活.点点滴滴回忆刻印成一张张图片.不过有不少网友却不知道ps怎么把两张图片合成一张,下文将一一为大家 ...

  4. 如何将两张图片合成一张pdf

    在职场工作中,学会处理PDF文件是必不可少的技能.由于PDF文档的特殊性,许多新手在编辑PDF文件时往往不知道从何入手.比如一些非pdf格式的文件,像图片,在使用的时候被指定必须使用pdf格式的,这个 ...

  5. android 两张电信_两张图片合成一张app-2张图片合成一张app下载1.2.9 官方安卓版-西西软件下载...

    两张图片合成一张app是一款可以把手机上的2张图片合成一张并且看不出是合成的图片的工具,玩转2张图片叠加,可以让你和偶像合照不是梦很逼真的!带你打造与众不同的作品!可以制作双重曝光效果的APP,带你打 ...

  6. 实用常识 | 如何将多张图片合成一张gif图片(使用Win10自带工具or利用Photoshop实现)

    今天遇到了一个需求,需要将多张图片合成一张gif图片,利用搜索引擎搜来搜去,尝试了很多在线的网页端工具,不过要么是有水印,要么是需付费,而且合成效果也不是很好,找来找去,Win10自带的视频合成工具也 ...

  7. 微信小程序绘制海报,或者把多张图片合成一张

    微信小程序绘制海报,或者把多张图片合成一张,例子 <image style='height:{{mabgh}}px;width:{{mabgw}}px;' class="savepng ...

  8. C# 实现多张图片合成一张gif

    此实现方式在.net web项目中实现(winform也可用,自己整理下),网上找了几个例子都不行,参考谋篇博文写的代码,刚开始生成不成功,后来发现是路径写的有问题,遂重新整理一份.效果如下图 项目结 ...

  9. 使用canvas来实现两张图片合成一张

    写在开头: 最近遇到一个需求,就是上传一张图片,原来的图片作为底图,两张图片组合在一起,形成一张新的图片.并能点击另存. 网上各种百度,谷歌.有很多方法.然后在我的需求里面都不是很适用.就结合前人的成 ...

最新文章

  1. 突破:量子计算机首次实现简化逻辑门
  2. 老板问:多长时间搞定?开发说3天,測试说2天,然后……
  3. (转载)不断进阶:从“学渣”到P10,一位阿里工程师的逆袭故事
  4. 深入浅出Node.js (2) - 模块机制
  5. 配置msf连接postgresql数据库
  6. LeetCode 372. 超级次方(快速幂)
  7. verilog学习记(开头篇)
  8. Python入门--特殊方法__len__(),__add()__
  9. Keil开发软件的使用详解
  10. MP3格式音频文件结构解析
  11. 方正计算机如何用u盘安装系统,方正电脑用u盘装系统操作方法
  12. Android使用高德地图实现轨迹播放和进度条控制
  13. Parameter Sniffing
  14. 作为硅谷大佬,大战周鸿祎是怎样的一种体验?|独家采访
  15. oracle全角改半角,Oracle全角数字转换半角数字
  16. 微信小程序获取当前地址以及选择地址详解
  17. MR详细运行原理及过程
  18. 计算机的分类及未来发展趋势,计算机的特点、分类及发展趋势
  19. WORD如何设置打印? 三分钟学会WORD打印技巧
  20. Android中对menu、home、back键的监听

热门文章

  1. Android:让手机成为你的移动生活助手
  2. flash的TLF字体框架,与部分XP-SP3 IE8不兼容。
  3. 重生之javaSE_for循环
  4. 如何拆分PDF,PDF拆分成多个PDF的方法
  5. Python开发Web扫描器实战
  6. 怎样清理苹果电脑磁盘空间_教程方法;Mac磁盘空间不足怎么办?苹果电脑磁盘空间清理方法电脑技巧-琪琪词资源网...
  7. c语言自定义开关按钮,状态开关按钮(ToggleButton)与开关(Switch)的功能与用法...
  8. [论文阅读] 《Compiling ONNX Neural Network Models Using MLIR》
  9. Python3 + PIL 实现文字转图片与自动换行(支持中英文与\t\n)
  10. 利用C#爬取煎蛋网图片