2011-04-15 68 views
1

我想在瀏覽器中操作動畫gif的每一幀圖像數據,並且我想使用HTML5 canvas和Javascript來完成它。例如,我有一個GIF動畫,並且我想在瀏覽器中將每一幀轉換爲灰度。這可能嗎?每當我用GIF動畫處理圖像數據時,只顯示第一幀(正確操作),gif不會再播放。如果有解決方案,這將是一個非常有用的技術。謝謝。如何將putImageData與使用HTML5 canvas和Javascript的動畫gif一起使用?

編輯:有沒有辦法查詢Javascript中的動畫GIF的當前幀,所以我可以使用putImageData作爲動畫進展的圖像?

回答

2

由於this page指出,您可以使用drawImage()在畫布上繪製GIF,並且此時它將從Gecko和WebKit中的GIF中繪製當前幀 - 但不是在Opera中,還不符合規範,所以依靠這種行爲並不是一個好主意。據我所知,沒有辦法從DOM獲取單個幀數據;在編寫jsgif(在另一個答案中提到過,但並不真正用於任何實際用途,因爲它是 - 效率非常低)之前,我研究了一下這段時間。

如果您可以解開服務器上的幀並將其手動設置爲動畫(例如Gmail does),那麼這可能是您的最佳選擇。

+0

您鏈接的第一頁是非常有用和有見地的。實際上,我可以很容易地將基於各自原始圖像的畫布圖像轉換爲灰度圖,並保留了他們的動畫,這正是我所需要的。歌劇使其中一些正確,其他人不太好;當我嘗試這個時,我必須留意規範。謝謝! – dmoonman 2011-04-18 01:28:04

相關問題