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();
}
}
}
下載 聯系作者