java生成GIF图片

简介

GIF图形交换格式是一种位图图形文件格式,以8位色(即256种颜色)重现真彩色的图像。它实际上是一种压缩文档,采用LZW压缩算法进行编码,有效地减少了图像文件在网络上传输的时间。它是目前广泛应用于网络传输的图像格式之一。

优点
  1. 优秀的压缩算法使其在一定程度上保证图像质量的同时将体积变得很小。
  2. 可插入多帧,从而实现动画效果。
  3. 可设置透明色以产生对象浮现于背景之上的效果。
缺点
  1. 由于采用了8位压缩,最多只能处理256种颜色,故不宜应用于真彩图像。

代码实现

测试代码依赖github上的一个开源实现

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import javax.imageio.ImageIO;

public class Client {

  public static void main(String[] args) throws Exception {
    BufferedImage image1 = ImageIO.read(new File("D:/123.jpg"));
    BufferedImage image2 = ImageIO.read(new File("D:/456.jpg"));
    AnimatedGifEncoder e = new AnimatedGifEncoder();
    //生成的图片路径
    e.start(new FileOutputStream("D:/testgif.gif"));
    //图片之间间隔时间
    e.setDelay(500);   // 1 frame per sec
    //重复次数 0表示无限重复 默认不重复
    e.setRepeat(0);
    //添加图片
    e.addFrame(image1);
    e.addFrame(image2);
    e.finish();
  }

}

原图

生成的效果图

参考

GIF/PNG和JPG的区别(一)
github开源实现

原文地址:https://www.cnblogs.com/strongmore/p/14508381.html