下载库
下载animated-gif-lib库
AnimatedGifEncoder类
setSize()方法,设置生成的gif图的尺寸
start()方法,生成gif文件
setDelay()图片之间的时间间隔,时间毫秒数为单位
setRepeat()设置重复的次数,0表示无限次
代码如下:
package com.wanmait.demo;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.imageio.ImageIO;
import com.madgag.gif.fmsware.AnimatedGifEncoder;
public class CreateGif {
private List<BufferedImage> imageList = new ArrayList<>();
//创建数组
//打开图片 filepath文件目录
public void open(String filepath)
{
File directory = new File(filepath);
File[] files = directory.listFiles();
//filepath目录下的所有的文件
try
{
for(File file:files) {
BufferedImage image = ImageIO.read(file);
//打开图片文件
imageList.add(image);
//添加到数组
}
}
catch(IOException ex)
{
ex.printStackTrace();
}
}
//创建gif文件
public void create(String gifPath)
{
try
{
AnimatedGifEncoder encoder = new AnimatedGifEncoder();
//设置生成的图片大小
encoder.setSize(800, 800);
//设置生成图片的路径 gif图片路径
encoder.start(new FileOutputStream(gifPath));
//设置图片与图片的间隔时间 毫秒数
encoder.setDelay(500);
//设置重复次数
encoder.setRepeat(0);
//0无限次
//添加图片
for(BufferedImage image:imageList)
{
encoder.addFrame(image);
}
encoder.finish();
}
catch(FileNotFoundException ex)
{
ex.printStackTrace();
}
}
} 测试代码:
package com.wanmait.demo;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
CreateGif createGif = new CreateGif();
createGif.open("d:/images/");
createGif.create("d:/data/1.gif");
}
}程序运行在d:/data文件夹下生成gif文件

0条评论
点击登录参与评论