要实现依赖于
animated-gif-lib-1.2.jar

gif转jpg

public synchronized static void toJpg(String gifName) throws IOException {/*** 在GIF的拆分和组装使用了animated_gif_jar工具包* 主要类是 gifdecoder * "E:/desk/Desktop/0805_3.gif"*/GifDecoder decoder = new GifDecoder();InputStream is = new FileInputStream(gifName);if(decoder.read(is) != 0) {System.out.println("读取有误");return;}is.close();System.out.println("帧的数量"+ decoder.getFrameCount());for(int i = 0; i < decoder.getFrameCount();i++) {BufferedImage frame = decoder.getFrame(i);int delay = decoder.getDelay(i);System.out.println("延迟时间"+ delay);OutputStream out = new FileOutputStream("E:/desk/Desktop/giffer/" + i + "g.jpg");ImageIO.write(frame, "png", out);out.flush();out.close();}

}


jpg转gif
public static void toGif(String path) throws IOException {try {int count = new File("E:/desk/Desktop/giffer").list().length;System.out.println(count);ByteArrayOutputStream outputStream2 = new ByteArrayOutputStream();BufferedImage[] src = new BufferedImage[count]; AnimatedGifEncoder encoder = new AnimatedGifEncoder();encoder.setRepeat(0);encoder.start(outputStream2);for(int i = 0;i < count;i++) {encoder.setDelay(50);src[ i ] = ImageIO.read(new File("E:/desk/Desktop/giffer/"+ i +"g.jpg"));encoder.addFrame(src[i]);           }encoder.finish();System.out.println(count);File file = new File("E:/desk/Desktop/conn/1.gif");FileOutputStream fileOutputStream = new FileOutputStream(file);byte[] bytearray = outputStream2.toByteArray();fileOutputStream.write(bytearray);fileOutputStream.flush();}catch(Exception e) {System.out.println( "jpgToGif Failed:");  e.printStackTrace();  }}}

“`

jpg与gif的互换(使用ImageIO代替JPEGImageEncoder)相关推荐

  1. Java将图片压缩为原来的一半

    Java将图片压缩为原来的一半 思路: 1.获取源图片的尺寸 2.设置目标图片的尺寸 3.打开源图片 4.基于源图片生成目标图片 ps: 在linux上无法使用JPEGImageEncoder ,因此 ...

  2. 有了这个方法群聊斗图你就不会输了(Python imageio制作gif动图)

    原文链接:http://www.juzicode.com/python-funny-imageio-make-gif 先说需要用到的3个模块,imageio用来读写图像文件.imageio-ffmpe ...

  3. ACMNO.30 C语言-宏交换 定义一个带参的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参。输出已交换后的两个值。

    题目描述 定义一个带参的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参.输出已交换后的两个值. 输入 两个数,空格隔开 输出 交换后的两个数,空格隔开 样例输入 1 2 样例输出 2 ...

  4. ACMNO.24 C语言-转置矩阵 写一个函数,使给定的一个二维数组(3×3)转置,即行列互换。 输入 一个3x3的矩阵 输出 转置后的矩阵 样例

    题目描述 写一个函数,使给定的一个二维数组(3×3)转置,即行列互换. 输入 一个3x3的矩阵 输出 转置后的矩阵 样例输入 1 2 3 4 5 6 7 8 9 样例输出 1 4 7 2 5 8 3 ...

  5. 用java实现互换和清空_java使用异或实现变量互换和异或加密解密示例

    import java.util.Scanner; public class VariableExchange { public static void main(String[] args){ Sy ...

  6. ICAP: 互换客户端地址协议

    什么是ICAP?从以太坊Homestead指南的词汇表中可以看出: Interexchange Client Address Protocol, an IBAN-compatible system f ...

  7. java二维数组从键盘更改_互换二维数组的行列。要求数组的行数、列数以及各元素均从键盘输入;输出互换前数组内容和互换后数组内容。(要求循环输入进行测试)Java...

    1. 互换二维数组的行列.要求数组的行数.列数以及各元素均从键盘输入:输出互换前数组内容和互换后数组内容.(要求循环输入进行测试) package com.mingrisoft; import jav ...

  8. pandas使用transpose函数对dataframe进行转置、将dataframe的行和列进行互换(flip the rows and columns in dataframe)

    pandas使用transpose函数对dataframe进行转置.将dataframe的行和列进行互换(flip the rows and columns in dataframe) 目录

  9. java 两个值对换_java将两个整型变量值进行互换的几种实现方法

    在很多时候,我们会使用到将两个整型变量值进行互换,比如冒泡排序,通过判断来将数组变量的值逐步交换,那么怎么交换值才能最有效最节省空间呢? 首先,我们会想到的,用一个零时变量来做中间的过度存储空间,这是 ...

  10. Python-从视频到gif(imageio,moviepy,ffmpeg)

    降智警告:本人为编程新手,遵守面向CSDN编程原则,代码架构具有个人特色,仅供参考 前言:因为之前看到一个视频里的ed还挺喜欢的,所以想截取下来,做成gif,结果做出来几十M,所以本文还会涉及截取并裁 ...

最新文章

  1. CSDN网友挑选的2007年最有价值文章
  2. bootstraptable treeGrid 懒加载_Java类加载机制及自定义加载器
  3. ES6基础之——对象表达式
  4. Qt工作笔记-对QImage的进一步认识(关于α通道)
  5. java写文件 自动创建目录吗_Java 自动创建日志目录及文件
  6. [Apache]安装中出现的问题
  7. 年轻人“颜值消费”崛起 分期乐联手屈臣氏发力95后美妆护理市场
  8. 【Spring】SpringMVC 初始化 流程
  9. 树莓派3vnc分辨率设置
  10. SAP License:买十送一的业务处理与系统实现
  11. 元素内容必须由格式正确的字符数据或标记组成_Blockly Fields积木表单元素
  12. IOS安全、逆向、反编译
  13. [转]Using Entity Framework (EF) Code-First Migrations in nopCommerce for Fast Customizations
  14. php截取字符串utf8,php自定义截取中文字符串-utf8版
  15. java重载与重写的区别
  16. stm32c语言写数码管定时器,【程序】STM32F103单片机使用定时器DMA进行全自动8位数码管动态扫描...
  17. 云优CMS发布接口模块—免登录通用版
  18. 直接sql 添加字段赋值
  19. java switch case 跳转_java 在switch结构中的case1如何跳转到case2
  20. Cocos技术派 | TS版属性面板定义高级用法

热门文章

  1. c语言库函数总结----ctype.h库
  2. Python内置下载服务器
  3. STM32 SIM800C SIM868 连接OneNet 以及远程控制流程详解
  4. 通过isapi协议抓拍图片
  5. java写便签_JAVA编写便签纸
  6. Python 批量更改文件名、更改文件格式
  7. Maven:repositories、distributionManagement、pluginRepositories中repository的区别(轻松搞明白)
  8. 多序列比对---ClustalX比对GeneDoc美化
  9. 数据结构问题解决2.1——单链表存储结构定义详细解释,struct LNode* next解释,为啥next定义成指针类型
  10. 国产ERP有没有机会击败SAP ?