22
有沒有人設法說服ImageIO編寫GIF動畫,特別是設置正確的元數據?我第一次嘗試大致如下(其中B1和B2 BufferedImages):使用ImageIO創建GIF動畫?
ImageTypeSpecifier spec = new ImageTypeSpecifier(b1);
ImageWriter wr = ImageIO.getImageWriters(spec, "GIF").next();
wr.setOutput(ImageIO.createImageOutputStream(new File("C:\\Flashing.gif")));
ImageWriteParam param = wr.getDefaultWriteParam();
IIOMetadata meta = wr.getDefaultImageMetadata(spec, param);
wr.prepareWriteSequence(meta);
wr.writeToSequence(new IIOImage(b1, null, null), param);
wr.writeToSequence(new IIOImage(b2, null, null), param);
這看似差不多的工作,但是:
- 我顯然需要以某種方式設置爲「適當」的元數據來設置之間的時間之間的圖像和理想使他們循環(我天真地希望默認會做一些明智的,但嘿...)
- 無論它默認情況下寫的元數據顯然不是很正確:GIMP給出了一些錯誤加載文件時的消息,儘管將圖像嵌入到Firefox的測試網頁中確實會顯示該文件o圖像非常快速連續,這是tantilisingly接近我想要的...
如果有人已經寫ImageIF的動畫GIF工作,並可以共享工作代碼片段或如何解決上述問題, 這將不勝感激!
main()函數提供的示例中存在錯誤。評論說: `//一個GIF序列,第一個圖像的類型,1秒之間的幀,它連續循環,這將是`新的GifSequenceWriter(輸出,firstImage.getType(),1000,真)`而不是`new GifSequenceWriter(output,firstImage.getType(),1,false)` – gvlasov 2013-08-14 07:44:28