点击关注强哥,查看更多精彩文章呀

哈喽,大家好,我是强哥。

据美国媒体报道,美国计算机科学家、GIF图像格式发明人斯蒂芬•威尔海特(Stephen Wilhite)于当地时间3月14日因新冠肺炎去世,享年74岁。1987年,他创建了图形交换格式(GIF)来压缩图像;2012年,GIF被牛津美国词典评为年度词语;2013年,斯蒂芬凭借发明GIF获得韦比终身成就奖。

首先,为GIF之父的离世表示惋惜。

GIF图片是我们日常生活中使用非常广泛的图片格式,尤其是那些充斥着智慧的表情包,如果没有GIF,就没有了灵魂。

今天强哥在这里,就来教大家使用Java生成GIF格式的图片,致敬伟人。

动手

这里,我们不对GIF的原来做过多的解释,直接实操。

导包

我们可以使用一个开源GIF生成工具包来实现。这里用的是animated-gif-lib,具体项目地址如下:

https://github.com/rtyley/animated-gif-lib-for-java

项目中导入Maven包:

<dependency><groupId>com.madgag</groupId><artifactId>animated-gif-lib</artifactId><version>1.4</version>
</dependency>

代码开发

有了工具包,生成GIF图片就非常简单了。只需要用到AnimatedGifEncoder配置一些图片的播放间隔、重复次数、图片生成路径等内容就可以生成想要的GIF图片啦~

具体代码如下:

import com.madgag.gif.fmsware.AnimatedGifEncoder;import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import javax.imageio.ImageIO;public class GifDemo {public static void main(String[] args) throws Exception {BufferedImage image1 = ImageIO.read(new File(GifDemo.class.getResource("/static/1.jpeg").getFile()));BufferedImage image2 = ImageIO.read(new File(GifDemo.class.getResource("/static/2.jpeg").getFile()));BufferedImage image3 = ImageIO.read(new File(GifDemo.class.getResource("/static/3.jpeg").getFile()));AnimatedGifEncoder e = new AnimatedGifEncoder();// 设置生成图片大小e.setSize(900, 1000);//生成的图片路径e.start(new FileOutputStream("./testgif.gif"));//图片之间间隔时间e.setDelay(500); //重复次数 0表示无限重复 默认不重复e.setRepeat(0);//添加图片e.addFrame(image1);e.addFrame(image2);e.addFrame(image3);e.finish();}}

上面的代码很简单,AnimatedGifEncoder类中提供了很多简单的方法:

  • setSize设置生成图片大小

  • start设置生成的图片路径,打开输出流

  • setDelay图片之间间隔时间

  • setRepeat重复次数 0表示无限重复 默认不重复

跑起来看看

这里我们在classpath下准备了三张图:

运行上面的代码,将图片生成在当前目录下,用浏览器打开生成图片效果如下(这里由于平台限制,所以我设置了图片大小):

哈哈,漂亮吧,轻轻松松就用Java生成了GIF图片。这样的话,嘿嘿,以后如果有好看的图片,如果嫌弃图片张数太多不好整理,直接用代码将他们搞到一张GIF里是不是就可以了。我真是精打细算的小九九啊。

强哥有话说

好啦,通过上面简单的方式,我们便实现了Java生成GIF图片,当然,这是站在前人的肩膀上才能有的结果。至于具体的细节,比较懒又直接要代码的小伙伴,可以关注公众号「强哥叨逼叨」后台回复「GIF」获取项目具体代码哦。

​​​​​​点击关注强哥,查看更多精彩文章呀

致敬Gif之父,使用Java生成Gif图片相关推荐

  1. java生成表格图片(请假条为例)

    java生成表格图片(请假条) package table;import java.awt.Color; import java.awt.Font; import java.awt.Graphics; ...

  2. java生成小图片_JAVA生成缩略小图片类

    JAVA生成缩略小图片类 java.awt.image.BufferedImage是缓冲图片类主要将生成的图片对象缓冲起来:javax.imageio.ImageIO是图片IO控制类,可以将缓冲图片对 ...

  3. Java生成随机图片验证码工具类

    一.第一种生成随机图片验证码 public class VerifyCodeUtil {//生成随机数据的数据源 public static final String VERIFY_CODES = & ...

  4. java生成条码图片、打印二维码、图片合并、图片加文字

    通过java生成二维码图片,可以添加文字内容,非常方便实现打印. import java.awt.Color; import java.awt.Font; import java.awt.FontMe ...

  5. 实现Java生成随机图片验证码

    前言 这篇文章主要介绍了如何通过Java如何生成验证码并验证.验证码的作用我想必大家都知道,话不多说开始实施! 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 1.项 ...

  6. java 生成证书图片_java生成自定义证书图片4

    终于到了生成自定义证书图片的最后一步,pdf转图片我选择使用pdfbox库,以下是工具类: packagecom.x.certificate.pdf;importjava.awt.image.Buff ...

  7. Java 生成滑动图片验证码, 阴影, 切块

    1, 效果 图片都是280x210 2, 切图工具 import javax.imageio.ImageIO; import javax.imageio.ImageReadParam; import ...

  8. java生成高斯模糊图片

    高斯模糊是一种两维的卷积模糊操作,在图像完成高斯模糊相对于均值模糊来说, 计算量会增加,但是高斯模糊可以实现一些特殊效果,特别是在图像噪声(非椒盐 噪声)消去方面,更是有着非常好的效果.一维高斯公式如 ...

  9. JAVA生成带图片带名称的二维码

    maven引入 com.google.zxing package com.util.qrCode;import com.alibaba.druid.util.Base64; import com.gi ...

最新文章

  1. 学习ASP.NET Core Razor 编程系列十八——并发解决方案
  2. 专访联想谢政维:功耗和价格是天蝎项目最大障碍!
  3. 包装类 java 1615210339
  4. MySQL 代码开发注意事项----开发高性能的sql
  5. 22. 栈的压入、弹出队列(C++版本)
  6. python数字右对齐_python用format把float、int等数字字符串化设置左对齐右对齐居中对齐,宽度,保留几位...
  7. 智能优化算法:基于梯度的优化算法-附代码
  8. 基于Java的敬老院管理系统
  9. Navicat premium11 一键破解 无需注册码
  10. 平面设计专业学什么?大学平面设计主修课程有哪些?
  11. 学习数码相框1.2.0.0字符的编码方式_显示点阵文字_freetype_在PC上测试freetype
  12. 集成mybatis-generator-maven-plugin报错A required class was missing while ..org/mybatis/generator/api/dom
  13. 二维条码防伪技术原理及应用简介
  14. linux系统配置sftp服务器,linux配置sftp服务器配置
  15. 无聊,几行python代码写一个聊天机器人陪你聊天
  16. 服务器中了勒索病毒怎么办,服务器中了勒索病毒怎么解决,服务器中了勒索病毒怎么处理
  17. Tio消息服务器,tio-websocket-spring-boot-starter 的简单使用 原 荐
  18. c语言求13为质数的代码,C语言求质数.doc
  19. 单节锂电池充放电管理方法、锂电池预充电的作用
  20. (一步解决)由于找不到VCRUNTIME140_1.dll,无法继续执行代码。重新安装程序可能会解决此问题

热门文章

  1. 第二章 视觉特性和彩色电视信号
  2. csgo社区服务器维护怎么玩躲猫猫,csgo国服怎么玩躲猫猫 国服躲猫猫快速进入方法...
  3. 批处理将生词导入金山词霸生词本!
  4. 阿里巴巴的 20 个开源项目
  5. 阿里云IOT-C-SDK系列(4)SDK配置选项理解
  6. windows 桌面图标 隐藏 小盾牌标志
  7. Quartz中文文档使用
  8. shell pwd 和 dirname 讲解
  9. 总结40条常见的移动端Web页面问题及解决方案
  10. html如何让雨滴消失,使用纯CSS3实现雨滴掉落水面的动画特效