還在用GIF佳镜?是時候了解一下APNG了

說到動圖僚稿,大家首先想到的肯定是 GIF。但 GIF 最大的缺點是蟀伸,圖像是基于顏色列表的(存儲的數(shù)據(jù)是該點的顏色對應(yīng)于顏色列表的索引值)蚀同,最多只支持 8 位(256 色)。這使得使用 GIF 格式不可能得到高清的動畫圖片啊掏。

APNG 是 Mozilla 在 2008 年發(fā)布的一種圖片格式蠢络,旨在替換掉畫質(zhì)低劣的 GIF 動畫。它實際上只是相當(dāng)于 PNG 格式的一個擴展迟蜜,所以 Mozilla 一直想把它合并到 PNG 標(biāo)準(zhǔn)里面去刹孔,但它目前并沒有獲得 PNG 組織官方的認可。

APNG 簡史

MNG

在 APNG 之前它還有一個老冤家叫 MNG(Multiple-image Network Graphics)即多圖像網(wǎng)絡(luò)圖形娜睛,1996 年 6 月提出 PNF(Portable Network Frame)草案髓霞,同年8月更名為 MNG ,2001 年 1 月 31 日發(fā)布 MNG 規(guī)范 1.0 版本微姊,MNG 是出自 PNG 開發(fā)組之手酸茴,但由于結(jié)構(gòu)復(fù)雜的 MNG 程序庫,使用過程會占用大量的資源兢交,早期只有較少的瀏覽器支持薪捍,Chrome、IE、Opera酪穿、Safari 則從未支持過凳干。

APNG

2004 年,由 Mozilla 公司兩位 Mozilla 程序員 Stuart Parmenter 和 Vladimir Vuki?evi? 共同設(shè)計出 APNG被济,他們希望 Mozilla 社區(qū)能使用它救赐,但提案未能通過。

libpng程序庫

2006 年只磷,Google Summer of Code 活動中经磅,加拿大圣力嘉學(xué)院的學(xué)生為 libpng 程序庫加入了對 APNG 支持,此后開發(fā)者再次推薦給 Mozilla 社區(qū)钮追,不過仍然遭到拒絕预厌。

首次支持

2007 年 3 月 23 日,Mozilla 后知后覺元媚,在 Mozilla Firefox 3.0 中 首次支持 APNG 格式轧叽。

標(biāo)準(zhǔn)化申請

2007 年 4 月 20 日,Mozilla 希望 APNG 能成為官方標(biāo)準(zhǔn)刊棕,因此 PNG 組織發(fā)起投票炭晒,最終以8:10的票數(shù)否決了 APNG 進了官方標(biāo)準(zhǔn),因為 PNG 組織決心繼續(xù)推廣 MNG甥角,但這不并影響 Mozilla 繼續(xù)支持 APNG网严。

為什么GIF能存活這么長時間

誕生于 1987 年的 GIF 為什么能存活這么久?
主要有四個原因:

  • 幾乎所有的主流瀏覽器都支持 GIF
  • 早期選擇不多蜈膨,GIF 幾乎是唯一選擇(GIF - 1987屿笼、JPEG - 1992、PNG - 1996翁巍、APNG - 2004、WebP - 2010)
  • 實現(xiàn)起來簡單休雌,制作的工具多
  • 采用 LZW 數(shù)據(jù)壓縮算法灶壶,使得 GIF 體積小,在早期慢速的互聯(lián)網(wǎng)易于傳播

為什么要取代它杈曲?

1.圖像質(zhì)量

GIF

APNG

如果你使用的是非 Firefox驰凛、Safari 瀏覽器,那 APNG 格式的圖片會向下兼容顯示為靜態(tài)圖担扑,你可以更換 Firefox恰响、Safari 瀏覽器或者在 Chrome 瀏覽器安裝 APNG Extension for Google Chrome 擴展來兼容,通過兩者對比能總結(jié)出以下區(qū)別:
GIF:

  • 最多支持 8 位 256 色涌献,色階過渡糟糕胚宦,圖片具有顆粒感
  • 不支持 Alpha 透明通道,邊緣有雜邊

APNG:

  • 支持 24 位真彩色圖片
  • 支持 8 位 Alpha 透明通道
  • 向下兼容 PNG

2.圖片體積



從幾組 GIF、APNG枢劝、WebP 的對比中可以發(fā)現(xiàn)井联,無論在純色的圖片或是多彩的圖片,大部分情況下 APNG 依舊能比 GIF您旁、WebP 以及有損的 WebP 的體積小烙常。

APNG 的組成

APNG 是基于 PNG 格式擴展的,首先需要了解一個簡單的 PNG 文件組成結(jié)構(gòu):

PNG Signature | IHDR | IDAT | IEND

PNG 由 4 部分組成鹤盒,首先以 PNG Signature(PNG簽名塊)開頭蚕脏,緊接著一個 IHDR(圖像頭部塊),然后是一個或多個的 IDAT(圖像數(shù)據(jù)塊)侦锯,最終以 IEND(圖像結(jié)束塊)結(jié)尾驼鞭。

APNG 規(guī)范引入了三個新大塊,分別是:acTL(動畫控制塊)、fcTL(幀控制塊)镜撩、fdAT(幀數(shù)據(jù)塊)贷盲,下圖是三個獨立的 PNG 文件組成 APNG 的示意圖。


  • acTL 塊必須在第一個 IDAT 塊之前穴张,用于告訴解析器這是一個動畫 PNG,包含動畫幀總數(shù)和循環(huán)次數(shù)的信息
  • fcTL 塊是每一幀都必須的两曼,出現(xiàn)在 IDAT 或 fdAT 之前皂甘,包含順序號、寬高悼凑、幀位置偿枕、延時等信息
  • fdAT 塊與 IDAT 塊有著相同的結(jié)構(gòu),除了 fcTL 中的順序號

從圖中可以發(fā)現(xiàn)第一幀與后面兩幀不同户辫,那是因為第一幀 APNG 文件存儲的為一個正常的 PNG 數(shù)據(jù)塊渐夸,對于不支持 APNG 的瀏覽器或軟件,只會顯示 APNG 文件的第一幀渔欢,忽略后面附加的動畫塊墓塌,這也是為什么 APNG 能向下兼容 PNG 的原因。

APNG 幀間優(yōu)化

APNG 會通過算法計算幀之間的差異奥额,只存儲幀之前的差異苫幢,而不是存儲全幀,使得 APNG 文件大小有顯著的減少垫挨。

制作APNG

已經(jīng)有很多工具支持制作 Animated PNG 圖片韩肝,相信將來也會越來越多。

如果只是想體驗一下制作的效果九榔,可以使用這個站點來快速生成: assembler

制作 Animated PNG 的工具與方法參考

感謝您的閱讀哀峻。
本文主要節(jié)選自‘凹凸實驗室’的 APNG 那些事涡相,歡迎大家關(guān)注凹凸實驗室

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末谜诫,一起剝皮案震驚了整個濱河市漾峡,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌喻旷,老刑警劉巖生逸,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異且预,居然都是意外死亡槽袄,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門锋谐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來遍尺,“玉大人,你說我怎么就攤上這事涮拗∏罚” “怎么了?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵三热,是天一觀的道長鼓择。 經(jīng)常有香客問我,道長就漾,這世上最難降的妖魔是什么呐能? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮抑堡,結(jié)果婚禮上摆出,老公的妹妹穿的比我還像新娘。我一直安慰自己首妖,他們只是感情好偎漫,可當(dāng)我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著有缆,像睡著了一般骑丸。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上妒貌,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天,我揣著相機與錄音铸豁,去河邊找鬼灌曙。 笑死,一個胖子當(dāng)著我的面吹牛节芥,可吹牛的內(nèi)容都是我干的在刺。 我是一名探鬼主播逆害,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蚣驼!你這毒婦竟也來了魄幕?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤颖杏,失蹤者是張志新(化名)和其女友劉穎纯陨,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體留储,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡翼抠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了获讳。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片阴颖。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖丐膝,靈堂內(nèi)的尸體忽然破棺而出量愧,到底是詐尸還是另有隱情,我是刑警寧澤帅矗,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布偎肃,位于F島的核電站,受9級特大地震影響损晤,放射性物質(zhì)發(fā)生泄漏软棺。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一尤勋、第九天 我趴在偏房一處隱蔽的房頂上張望喘落。 院中可真熱鬧,春花似錦最冰、人聲如沸瘦棋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽赌朋。三九已至,卻和暖如春篇裁,著一層夾襖步出監(jiān)牢的瞬間沛慢,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工达布, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留团甲,地道東北人。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓黍聂,卻偏偏與公主長得像躺苦,于是被迫代替她去往敵國和親身腻。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 移動端圖片格式調(diào)研 圖片通常是移動端流量耗費最多的部分匹厘,并且占據(jù)著重要的視覺空間嘀趟。合理的圖片格式選用和優(yōu)化可以為你...
    AngeloD閱讀 1,236評論 0 5
  • 兒子閱讀的習(xí)慣已經(jīng)堅持第15天了。由于他讀的是《課外閱讀》和《人文素養(yǎng)》愈诚,里面陌生字比較多她按,拼讀時候經(jīng)常出錯,我也...
    親子園閱讀 189評論 0 3
  • 我是三門峽市陜州區(qū)西張村鎮(zhèn)張村小學(xué)劉艷華扰路,同時是滬江青椒計劃的學(xué)員尤溜。2017年至今,我都做了什么汗唱?我開始了記憶搜索...
    陜縣258劉艷華閱讀 294評論 0 2
  • 剛在簡書上面翻閱了一篇“一位從技術(shù)員逐步成為博士生導(dǎo)師”的勵志故事宫莱,講述了主人公如何從西北大山里面的苦孩子到進城求...
    一輪姣陽閱讀 612評論 2 5
  • 仔細想來,倒也不是個事 哩罪。不過是收碗這不用個把分鐘的事授霸,當(dāng)即看到擺在桌上的碗筷,沒人去收际插,可卻引起火來碘耳。到底是小氣...
    綠燈blue閱讀 261評論 4 0