dll下载的地址
http://www.codeproject.com/Articles/11505/NGif-Animated-GIF-Encoder-for-NET
使用主要调用的是Components这个代码库,引用dll就可以了。
http://www.cnblogs.com/lazycoding/archive/2012/06/15/2551019.html#undefined
作者:

lazycoding

以下为这条连接的博客园内容:
思路很简单,就是先把gif分解成很多帧,然后对帧进行合并,合并帧之前把帧的位置反转一下就可以了。因为我自己对图像处理的知识不懂,只想到了思路,所以这些功能都要找些资料,然后修改,测试。
分割帧的代码如下
//解码gif图片 public List<string> GetFrames(stringpPath,stringpSavedPath) { Image gif=Image.FromFile(pPath); FrameDimension fd=newFrameDimension(gif.FrameDimensionsList[0]); //获取帧数(gif图片可能包含多帧,其它格式图片一般仅一帧) intcount=gif.GetFrameCount(fd); List<string>gifList=newList<string>(); //以Jpeg格式保存各帧 for(inti=0;i<count;i++) { gif.SelectActiveFrame(fd,i); gif.Save(pSavedPath+"\\frame_"+i+".png",ImageFormat.Png); gifList.Add(pSavedPath+"\\frame_"+i+".png"); } returngifList; }
可以看到,返回了一个包含所有生成的帧地址的list列表。然后就是使用gifList作为参数来合并了。
 
//获取系统临时目录存放解码后的png图片\r\n stringtemppath=System.Environment.GetEnvironmentVariable("TEMP"); List<string>gifList=GetFrames(tBoxFile.Text,temppath); gifList.Reverse(); StringoutputFilePath="new.gif"; AnimatedGifEncoder ae=newAnimatedGifEncoder(); ae.Start(outputFilePath); ae.SetDelay(100); // 延迟间隔\r\n ae.SetRepeat(0); //-1:不循环,0:总是循环 播放 \r\n for(inti=0,count=gifList.Count;i<count;i++) { ae.AddFrame(Image.FromFile(gifList[i])); } ae.Finish(); MessageBox.Show("成功!新文件已保存在同目录");
这里面使用了AnimatedGifEncoder这个类,这是Gif.Components.dll动态连接库里的类(此库开源,文末给出地址),是我在codeProject上找到的。首先我把gifList反转,然后合并保存到同目录。中间生成的帧为了方便我保存到了temp目录。
本来这个库里是分割gif的功能的。但是我实际测试后发现效果非常差,图片黑条泛滥,根本没法看。所以还是使用上面那段代码,相关代码我依然保存在工程里,有兴趣可以自己测试。

C# GIF图片的分解以及合成相关推荐

  1. 【特征向量】——从线性代数角度看分解与合成

    概念 本文是在读了黎文科老师神奇的矩阵后,做的一些笔记以及对分解和合成的一点思考,如有问题,欢迎交流. 这里附上一些线性代数中的数学概念. 矩阵:描述运动,本质是在一组基描述下的向量(对象)的线性变换 ...

  2. iOS中gif图片的分解与显示

    UIImageView遇到gif格式的图片能显示吗? 不能. 要让UIImageView中显示gif格式的图片应该怎么做? 只有一种办法,那就是把gif图片分解成多张静态图片,然后放在一个数组里,并使 ...

  3. 方波分解与合成的电路验证

    一.课题内容及其目标 1.1课题内容 本课题主要从信号与系统.电路分析与设计.电路仿真等方面对方波分解与合成的进行电路验证. 课题内容: 本课题主要模块为: 方波的合成:采用理想信号作为输入激励,采用 ...

  4. 基于matlab的信号合成与分解,基于Matlab周期信号的分解与合成

    计 算 机 与 现 代 化 2011 年第 9 期 JISUANJI YU XIANDAIHUA 总第 193 期 文章编号:1006-2475( 2011) 09-0156-03 收稿日期:2011 ...

  5. 把多张 PNG 图片拼在一起合成一张 RAW 格式的图片(附代码)

    把多张 PNG 图片拼在一起合成一张 RAW 格式的图片设定好输入和输出的路径即可 代码如下 import numpy import os # import argparse from PIL imp ...

  6. 趋肤效应实验报告_方波的傅立叶分解与合成 - 范文中心

    课 题 方波的傅立叶分解与合成 教 学 目 的 1.用RLC 串联谐振方法将方波分解成基波和各次谐波,并测 量它们的振幅与相位关系. 2.将一组振幅与相位可调正弦波由加法器合成方波. 3.了解傅立叶分 ...

  7. php 图片程序分离,一个图片地址分解程序(用于PHP小偷程序),

    一个图片地址分解程序(用于PHP小偷程序), 如题,返回一个数组,可以获得图片地址的base url,相对地址,名称等,具体见下例: 运行结果: array(4) { ["base_url& ...

  8. OpenCV:使用python-cv2实现视频的分解与合成

    1.视频分解图片 我们使用cv2.VideoCapture来读取视频 import cv2 cap = cv2.VideoCapture('1.mp4') isOpened = cap.isOpene ...

  9. Java图片转换为PDF并合成同一PDF

    1.需求 将同一文件夹下的图片和PDF,转换合并为同一个PDF,并要求转换中的图片按格式排版好 2.思路 调整图片,检测图片大小及方向,调整至A4大小(842×595), 寻找最佳缩放比,等比例缩放图 ...

  10. asp生成带参数的二维码并合成推广海报图片,asp合并合成推广海报图片asp代码

    最近做的一个项目中,客户要求用asp生成二维码,然后合并到一张背景图片上,合并生成一张推广海报来,可把我愁坏了,经过一个晚上的努力,成功了,下面把这个:asp生成带参数的二维码并合成推广海报,asp合 ...

最新文章

  1. 谷歌的深度学习在AI芯片中找到了一条关键路径
  2. django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)...
  3. sql脚本对比工具_Java开发中用到的数据库迁移工具(flyway)
  4. android蓝牙4.0使用方法
  5. YOLO系列:YOLOv1,YOLOv2,YOLOv3,YOLOv4,YOLOv5简介
  6. linux 查看手机硬件信息失败,linux下硬件信息的查看总结
  7. Mysql Sql语句令某字段值等于原值加上一个字符串
  8. HarmoneyOS鸿蒙系统零代码编程入门
  9. 润乾V4.2.5 报表开发 安装 以及授权文件
  10. Gallery模块管理系统相册,支持从相册中选择图片或视频文件、保存图片或视频文件到相册等功能。通过plus.gallery获取相册管理对象
  11. 互联网防骗指南[摘录58同城]
  12. dms档案资料管理系统(源码)
  13. c语言添加删除课程的思路,基于C语言实现学生选课系统
  14. Hash函数及其重要性
  15. 关于 负反馈放大电路,你需要了解这些
  16. 主题计算机一级,Office2007文档主题的应用或自定义
  17. 4G图传移动视频取证-可视安全生产监管-常见问题解答FAQ
  18. Direct3D中的绘制
  19. whistle安装 | 简单使用
  20. telnet 使用教程(新手篇)及问题集锦

热门文章

  1. 联创宽带上网助手协议的简单分析(一)start包和off包
  2. VMware虚拟机磁盘扩容
  3. wi ndows防火墙,网吧的防火墙怎么关?四种方法关闭WINDOWS防火墙
  4. web学习6-jdom
  5. java jdom2_JDOM 生成和解析XML(二)
  6. 详解4种类型的爬虫技术
  7. 什么是物联网数据采集网关?物联网数据采集网关的特点
  8. Python链家广州二手房的数据爬取--数据爬取
  9. 数值计算之第二期:误差分析
  10. Ubuntu18.0.4深度学习环境搭建及相应软件安装(Update)