2013-03-26 49 views
3

我有一個很像這個動畫的gif,其中動畫的循環特性導致一些幀在動畫的一個完整循環內重複兩次。GIF動畫 - 避免重複存儲兩次幀

enter image description here (來自here

我目前分別存儲每一幀中的gif。是否有可能只存儲每個重複的幀一次,以有效減半所需的存儲空間?

我使用movie2gif converter在MATLAB中創建我的gif,但會很滿意使用gif創建或後處理工具的替代方法。

EDIT

我的意思由幀重複在該示例圖像的上下文中最好的說明。顯示的框架就像左邊的球離開一排球。這個確切的幀在幾幀後重復,當左邊的球現在正在返回時再次擊中球的一排。由於幀的排序,目前需要將該幀存儲兩次。我想要一種保存gif(或後處理gif)的方式,這樣我就可以保留完整的動畫序列(例如30幀),但重複的幀是柔和的鏈接回它們的第一個展示,從而消除了將它們存儲兩次的需要。

+0

比爾,你可以嘗試使用'isequal'來檢查一個幀在存儲之前是否與另一個幀相同。 – Justin 2013-03-26 16:48:31

+0

@jucestain謝謝,我確實已經知道哪些幀是平等的。問題是,如果我只包含獨特的幀,那麼gif不會很好地循環。在我的問題中,球的例子有一個框架,當左側的球剛剛被推開時,以及當球剛剛返回時的相同的框架。 – 2013-03-26 18:20:29

回答

1

從movie2gif及其輸入參數的描述來看,似乎並不可行。此外,在閱讀GIF如何工作(和LZW)壓縮時,我可以想象,甚至不可能像這樣縮小GIF的大小。

如果您只想保存最低要求的圖像,並且不介意在看到圖像之前構建圖像,那麼您可以存儲每個圖像和索引矢量。

在你的情況下,可能找到一種方法來保存圖像的一半,然後在一個循環中播放它:前進 - 後退 - 前進......但我不知道這是否可能。