下载库
下载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条评论
点击登录参与评论