2012-03-01 50 views
7

我想從網絡中獲得GIF圖像,但我發現如果我下載整個GIF圖像,將導致大量的網絡流量。獲取第一幀的GIF圖像,而無需下載所有其他幀

我可以只下載GIF圖像的第一幀而不下載所有其他幀嗎?

+0

我很想知道投票完全有效的問題的原因。 – 2012-03-04 13:53:04

+0

使用這個鏈接的庫:https://github.com/dragon66/icafe,它就像一個線路調用一樣簡單:ImageIO.getReader(ImageType.GIF).getFrameAsBufferedImage(InputStream is)或者ImageIO.getReader(ImageType。 GIF).read(InputStream是)。返回類型將是Java BufferedImage。 – dragon66 2014-09-10 15:39:07

回答

0

嗯,我還沒有找到現成使用的解決方案,但你可以做到這一點的方法(它會導致一些「低級」的招數):

wiki about GIFs,GIF動畫文件可以被分割成幀,幀的結束可以被容易地識別。因此,您需要閱讀GIF標題,屏幕信息,關於動畫進入緩衝區的信息,下載第一幀並追加信息,如GIF結束(以下wiki文章爲「3B」)。而且,如果您將此數據複製到單獨的緩衝區中,則可以繼續下載整個文件而無需重新下載第一幀。

此外,您可以編輯標題信息將第一幀格式化爲靜態gif。

+0

非常感謝。我正在做。 – ctsu 2012-03-10 14:14:51

+0

嗨在這方面的任何更新 – 2013-08-30 07:33:13

相關問題