GIF 的 DelayTime&UnclampedDelayTime

最近要做 GIF 的顯示, 在解析 GIF 源文件的時候發(fā)現(xiàn) GIF 的圖片時間控制有兩個 DelayTime&UnclampedDelayTime 延時, 所以想要了解下這兩個的用處和區(qū)別.

很多 GIF 圖片為了得到最快的顯示速度會把 duration 設(shè)置為 0, 瀏覽器在顯示他們的時候為了性能考慮就會給他們減速(clamp), 因為很多 GIF 都是無限循環(huán)播放的.

在看很多獲取 duration 的源碼, 邏輯都是先獲取 UnclampedDelayTime, 如果沒有就取 delayTime, 如果這個值太小就設(shè)置為 0.1. 據(jù)說 RFC 規(guī)定的是不能少于 40ms.

kCGImagePropertyGIFDelayTime 是以秒為單位的時間度量, 表示在圖片序列中等待下一幀圖片顯示的時間. 如果時間少于 50ms, 那么實際上存儲的時間實際上是 100ms.

kCGImagePropertyGIFUnclampedDelayTime 時間度量, 單位為秒, 表示在動畫序列中等待下一幀圖片顯示的等待時間. 該值可能是 0ms 或者稍高. 和 DelayTime 的區(qū)別就是這個值不會在數(shù)據(jù)下限(比如 50 ms 以下), 減速顯示.

實際上這兩個值怎么取舍還是存疑, depends on the cat.
拋磚引玉, 請教了.

來源

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容