2012-03-31 96 views
0

我想在Java applet中控制動畫GIF的速度。有沒有辦法做到這一點?如果沒有,有沒有辦法訪問動畫GIF的數據,這樣小程序可以通過圖像自己繪製動畫圖像?如何控制動畫GIF的速度?

+0

*「我如何控制Java applet中動畫GIF的速度?」*完全一樣,您可以在應用程序中執行動畫。因此'Applet'是無關緊要的。 – 2012-03-31 07:51:05

回答

2

我認爲幀頻嵌入到GIF中。你可以以某種方式從GIF中提取圖像,但這比從單個圖像開始並使用JS進行動畫製作要困難得多,這比以您的首選幀速率重新創建GIF更困難。

如果您打算只使用一次GIF並且幀速率不會改變,只需重新創建GIF即可。如果您需要根據applet的輸入更改速度,則可以使用方法here。它交替之間兩個gifs,但沒有什麼能阻止你加載PNG和交替通過這些陣列。

0

動畫GIF格式包含每幀的數據以及延遲值(顯示該幀的時間長度)。每幀的延遲是分開的,並以兩個字節存儲,並測量爲幾百秒。

Netscape(當它是網頁時),無法顯示幀速度超過每秒10。所以很多工具只是把它擰緊,並將所有幀的延遲設置爲0.很多舊的GIF和舊工具都會使這些延遲時間延長。

通過更快的計算機和瀏覽器,他們通過檢查是否有任何幀延遲了< = 50ms(20+ fps)來解決此問題。如果他們這樣做,延遲增加到100ms(10fps)。

原則上,最好的解決方案是修正你正在使用的GIF,以便在它們中有精確的幀延遲。如果這不可行,請使用相同的舊解決方法。如果指定的延遲是< = 50ms,則將幀從動畫GIF中分離出來並自己動畫,默認延遲100ms。這會給你和大多數瀏覽器中看到的一樣的行爲。

閱讀關於這一段時間。想想維基百科上提到的大部分細節(包括動畫GIF格式和每幀延遲)。如果你真的想要一些可靠的參考資料,我可以爲你挖掘它們。