2014-03-06 62 views
3

我有一個GIF圖像,我希望能夠檢測GIF是否是動畫GIF或不使用JAVA。這個問題是關於檢測而不是顯示gif。瞭解GIF動畫或不在JAVA

我看到動態gif的MIME類型與靜態gif沒有區別。

我該怎麼做?

+1

可能重複:http://stackoverflow.com/questions/2935232/show-animated-gif-in-java – bknopper

+1

你應該能夠手動解析文件頭。看看[這個線程](http://www.velocityreviews.com/forums/t146605-identifying-animated-gifs.html)。 –

+4

@bknopper不是重複的,因爲這個問題不是關於展示,而是關於檢測動畫GIF。 –

回答

8

您需要一個ImageReader。如果大小爲1,則它不是動畫,上面的所有內容都是動畫。 檢查了這一點:

public Snippet() { 
     File f = new File("test.gif"); 
     ImageReader is = ImageIO.getImageReadersBySuffix("GIF").next(); 
     ImageInputStream iis; 
     try { 
      iis = ImageIO.createImageInputStream(f); 
      is.setInput(iis); 
      int images= is.getNumImages(true); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
} 
+6

我只是建議在'finally'塊中關閉流,以便爲答案添加完整性。 – Simeon

+0

或者像這樣: ''try(ImageInputStream iis = ImageIO.createImageInputStream(f){'' 當使用Java> 6 –