2011-03-18 131 views
12

我想從BufferedImages集創建一個gif圖像。我怎樣才能做到這一點?純Java中是否有這樣的庫(ImageMagick不是一個選項)?我找到了Gif4J庫,但它不是免費的。如何在Java中創建動畫gif?

+0

嘗試此[GIF編碼器( http://www.java2s.com/Code/Java/2D-Graphics-GUI/AnimatedGifEncoder.htm)。 **相關問題:** - [使用imageio創建動畫圖片](http://stackoverflow.com/questions/777947/creating-animated-gif-with-imageio) – Emil 2011-03-18 08:59:39

+0

還有這個http:// elliot。 kroo.net/software/java/GifSequenceWriter/這似乎工作得很好。 – 2014-05-01 06:47:47

+0

[This](https://github.com/dragon66/icafe)鏈接和那裏的wiki例子會做你想做的。您也可以控制幀速率。這是純粹的Java。你甚至可能不需要使用imageio! - dragon66 14年9月19日19:47 – dragon66 2015-10-28 20:04:21

回答

4

我只是回答類似的問題here,但我認爲我的解決方案可以提供幫助。

'ImageIcon'類允許您加載gif動畫。我用'getResource()'加載圖像。爲此,我通常使用URL類來傳遞文件路徑。名稱URL可能表示該路徑不需要在遠程計算機上使用。

URL url = This.class.getResource(path); 
Icon myImgIcon = new ImageIcon(url); 
JLabel imageLbl = new JLabel(myImgIcon); 
component.add(imageLbl, BorderLayout.CENTER); 

path將是類文件夾內gif的路徑。

參考文獻: http://docs.oracle.com/javase/tutorial/uiswing/components/icon.html#getresource

0

有使用由Lifelogger- Glide Docs提到的非常相同AnimatedGifEncoder類的圖像處理庫,類似於PicassoGlide

AnimatedGifEncoder e = new AnimatedGifEncoder(); 
e.start(outputFileName); 
e.setDelay(1000); // 1 frame per sec 
e.addFrame(image1); 
e.addFrame(image2); 
e.finish();