JGIF
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(); } } }
posted @ 2005-10-09 06:59 Graphics 閱讀(5203) | 評論 (1) | 編輯 收藏