JGIF 是一个 Java 编写的 GIF 文件编码器。除可以方便地把 BufferedImage 编码成 GIF 文件外,还具有高性能的 24 位色到 256 色的转化功能。
使用极其简便:
生成静态 GIF:
import java.io.*;
import javax.imageio.*;
public class TestImage
{
public static void main(String[] args) throws Exception
{
try{
net.jgif.GIFImage image =
new net.jgif.GIFImage(ImageIO.read(new File("1.jpg")));
image.setCommentExtension("bout.toString()");//加入注解扩展
/*
指定版本号,如果指定为 GIF87A,则注解扩展及透明色实效。
默认为 GIF89A。
*/
//image.setVersion(net.jgif.GIFImage.GIF87A);
/*
指定其透明色,也可不指定。
无论是否指定,在 BufferedImage 中为透明色的颜色一律透明。
如果指定了透明色,则该颜色也将透明。
*/
//image.setTransparenceColor(java.awt.Color.BLACK);
//image.isInterlace = true;//指定是否进行交错处理(默认为false)。
image.save(new FileOutputStream("test.gif"));
}catch(Exception e){
e.printStackTrace();
}
}
}
生成动画:
import java.io.*;
import javax.imageio.*;
public class TestAnimator
{
public static void main(String[] args) throws Exception
{
try{
net.jgif.GIFAnimator image = new net.jgif.GIFAnimator();
//设置循环次数,0 为无限循环,大于 0 为指定次数,默认为 0。
image.setLoopCount(1);
image.setCommentExtension("setCommentExtension");//加入注解说明扩展。
//直接加入帧。
image.addFrame(ImageIO.read(new File("1.jpg")));
//以指定的时间加入帧。
image.addFrame(ImageIO.read(new File("2.jpg")), 1000);
//以可定义的帧的形式加入帧。
net.jgif.GIFFrame frame =
new net.jgif.GIFFrame(ImageIO.read(new File("2.jpg")));
//指定显示方案,默认为 DM_LEAVE。
//frame.setDisposalMethod(net.jgif.GIFFrame.DM_BGCOLOR);
//设置该帧的显示时间,单位为毫秒,如果不指定则为默认值 500,即 0.5 秒。
frame.setDelayTime(1000);
//指定frame在整幅图片中的位置。
//frame.imageLeft = 10;
//frame.imageTop = 10;
/*
指定其透明色,也可不指定。
无论是否指定,在 BufferedImage 中为透明色的颜色一律透明。
如果指定了透明色,则该颜色也将透明。
*/
//frame.setTransparenceColor(java.awt.Color.BLACK);
image.addFrame(frame);
image.save(new FileOutputStream("test.gif"));
}catch(Exception e){
e.printStackTrace();
}
}
}
下载 联系作者