圖片格式雜談

前言

在互聯(lián)網(wǎng)快速發(fā)展,熱火朝天的當下吴趴,無論是PC端漆诽,還是移動端侮攀,圖片都是必不可少的元素。好的圖片能讓我們的應用熠熠生輝厢拭。同時用戶體驗也是至關重要兰英,我們在保證圖片質量的同時,還要考慮應用的性能供鸠,正確的圖片格式能為我們的應用帶來好的性能畦贸,反之則不然。那么面對那么多的圖片格式(JPEG楞捂,png薄坏,gif,svg寨闹,webp)胶坠,我們應該如何選擇呢?

一繁堡、JPEG

JEPG由聯(lián)合圖像專家小組(Joint Photographic Experts Group)于1992年創(chuàng)建沈善,并以創(chuàng)建者命名。JPEG是一種有損光柵圖像格式椭蹄,這意味著每次壓縮保存JPEG時闻牡,一些信息將發(fā)生不可逆轉地丟失

JPEG利用人眼感知的缺陷 對亮度比對顏色更敏感 使用了一種壓縮算法來丟棄我們不太擅長獲取的信息绳矩,因此屬于有損格式罩润。壓縮率的設置將決定最終保存文件的大小和質量。

1.用途

因為JPEG適用于亮度和色彩壓縮翼馆,所以在照片割以,以及其他寫實或者帶陰影的圖像(如繪畫和3D渲染)上使用效果良好。這就是為什么它是多年來最流行的存儲圖片的格式写妥。出于同樣的原因拳球,JPEG不適宜用在矢量圖片,如徽標珍特,幾何圖形祝峻,截圖等方面。

2.壓縮

作為有損格式扎筒,JPEG文件的壓縮率與最終圖像質量呈反比莱找。在像Photoshop這樣的工具中保存JPEG時,你會看到一個從0到100的質量設置嗜桌。Photoshop設置了一些圖像質量范圍:

圖像質量 壓縮百分比
10%
30%
60%
非常高 80%
最佳 100%

Web頁面上建議使用在50%到60%質量之間的JPEG奥溺,因為它能兼顧不錯的圖像質量和較小的文件尺寸。刪除元數(shù)據(jù)也可以減少JPEG文件體積骨宠。

壓縮工具:

  • 在線:TinyJPEG
  • Mac上 ImageOptim
  • Windows上 RIOT

二浮定、PNG

可移植網(wǎng)絡圖形(Portable Network Graphics)相满,是一種自1995年以來就一直存在的光柵圖像格式。它與JPEG不同桦卒,因為它是一種無損格式立美,并且是目前網(wǎng)絡上最常見的無損格式。這意味著由于它的壓縮算法方灾,當文件被保存和壓縮時建蹄,不會丟失任何信息

1.特性

  • 透明通道 - 意味著每個像素可以具有不同的透明度;
  • 8位文件可以使用基于調色板的顏色模型(也稱為索引顏色) - 這意味著如果減少顏色數(shù)量裕偿,文件可能更小;
  • 依據(jù)libPNG的說法洞慎,PNG壓縮效率比GIF高25%;
  • 二維隔行掃描 - 圖像會在加載過程中漸進顯示,而不是只有當圖像完全加載時才顯示嘿棘。你必須謹慎使用此選項劲腿,因為它會增加文件大小。

2.用途

PNG對于線條圖蔫巩,LOGO谆棱,圖標和顏色較少的圖像非常適合快压。顏色復雜的照片和圖像使用PNG格式將生成巨大的文件圆仔。PNG另一個優(yōu)點是支持透明背景。對于需要透明背景支持的情況蔫劣,即使是復雜的圖片仍然需要使用PNG坪郭,因為JPEG中無法實現(xiàn)圖片透明。

3.壓縮

因為PNG中的壓縮算法是無損的脉幢,你可以選擇性地減少它的顏色歪沃,從而通過外部工具減小圖片尺寸。

壓縮工具:

  • Pngquant
  • Pngyu
  • ImageAlpha
  • TinyPNG

三嫌松、GIF

圖形交換格式(Graphics Interchange Format)也是一種位圖格式沪曙。GIF與PNG具有類似的特性,但有自己的一些缺點:

  • 僅支持256種顏色;
  • 一維隔行交錯 — 圖像會漸進顯示萎羔,但不夠平滑;
  • 與PNG相比壓縮性能差;
  • 二進制透明度 - 像素只能是100%透明或100%可見;
  • 有歧義的發(fā)音

GIF因動畫而出名并被廣泛使用液走。但是,現(xiàn)在即使是動畫也可以通過其它的方式完成贾陷,而且文件大小更小缘眶。例如使用SVG和Javascript,PNG序列幀或視頻也可以更好的實現(xiàn)動畫髓废。所以巷懈,除非有非常特殊的原因必須使用GIF,否則建議大家使用大眾化的PNG或SVG慌洪。

四顶燕、SVG

可伸縮矢量圖形(Scalable Vector Graphics)矢量格式凑保。這意味著它不會基于像素存儲數(shù)據(jù),而是通過記錄坐標的形式存儲圖形信息涌攻。SVG使用基于XML的語義化標簽結構愉适,這有點像HTML。由于是DOM結構癣漆,你可以通過ID獲取SVG元素维咸,并操縱它們。

SVG圖片能不丟失任何細節(jié)地放大到任何大小惠爽。打個比方癌蓖,同一個圖標,可以以多種尺寸使用婚肆,并且在任何屏幕分辨率(比如Retina顯示器)中都將看起來很清晰租副,而不需要存成多個文件。

1.用途

SVG在線條藝術较性,LOGO用僧,圖標,插畫和數(shù)據(jù)可視化方面用途廣泛赞咙。但它不適用于寫實圖像和有許多細節(jié)的復雜圖片责循。在一些情況下,SVG和PNG都能很好地達到同一個目的攀操。對于線條藝術院仿,SVG通常能生成較小的文件。

但是這不是必然的速和,實際情況會根據(jù)矢量圖像究竟有多少個錨點歹垫,它甚至可能會生成比PNG更大的文件。 SVG真正出色的地方是數(shù)據(jù)可視化颠放。由于可以使用JavaScript來操縱和創(chuàng)建矢量動畫排惨,諸如D3之類的庫提供了無限的可能性.

2. 壓縮

關于SVG的壓縮,比較好的方法應該是通過清除SVG矢量圖形中不必要的錨點碰凶、元素和屬性來減少文件大小暮芭。錨點繪制了矢量圖像,因此痒留,你需要確保已移除的錨點不會影響矢量圖形的最終形狀谴麦。

元素標簽是包含在SVG文件內的所有內容,包括開始和結束標簽伸头。矢量編輯軟件匾效,如Adobe IllustratorSketch可能會到處含有非必要元素和屬性的SVG。SVG壓縮器可用于刪除這種多余的信息恤磷。

壓縮工具:

  • Compressor
  • SVGOMG
  • SVGO

五面哼、WebP

WebP(發(fā)音 weppy)野宜,是一種支持有損壓縮和無損壓縮的圖片文件格式,派生自圖像編碼格式 VP8魔策。

1.WebP的優(yōu)勢

  • PNG 轉 WebP 的壓縮率要高于 PNG 原圖壓縮率匈子,同樣支持有損與無損壓縮
  • 轉換后的 WebP 體積大幅減少,圖片質量也得到保障(同時肉眼幾乎無法看出差異)
  • 轉換后的 WebP 支持 Alpha 透明和 24-bit 顏色數(shù)闯袒,不存在 PNG8 色彩不夠豐富和在瀏覽器中可能會出現(xiàn)毛邊的問題

WebP 的優(yōu)勢體現(xiàn)在它具有更優(yōu)的圖像數(shù)據(jù)壓縮算法虎敦,能帶來更小的圖片體積,而且擁有肉眼識別無差異的圖像質量政敢;同時具備了無損和有損的壓縮模式其徙、Alpha 透明以及動畫的特性,在 JPEG 和 PNG 上的轉化效果都非常優(yōu)秀喷户、穩(wěn)定和統(tǒng)一唾那。

2.兼容性 & 可用性

根據(jù)對目前國內瀏覽器占比與 WebP 的兼容性分析,大約有 50% 以上的國內用戶可以直接體驗到 WebP褪尝,如果你的網(wǎng)站以圖片為主闹获,或者你的產(chǎn)品基于 Chromium 內核,建議體驗嘗試河哑。假如你打算在 App 中使用 WebP避诽,除了 Android4.0 以上提供的原生支持外,其他版本以及 iOS 都可以直接使用官方提供的解析庫灾馒。

WebP 除了在解碼時間與 PNG 有較明顯差異(毫秒級別)之外茎用,總體(流暢程度遣总、CPU使用睬罗,內存占用)使用體驗和 PNG 基本無差異。同時也需要明確旭斥,移動設備的發(fā)展迅猛容达,硬件升級快,上一年的表現(xiàn)也許在今年又有了明顯的提升垂券。所以花盐,在 App 中使用 WebP 基本沒有技術阻礙。

3.Animated WebP

Animated WebP的優(yōu)勢:

  • 支持有損和無損壓縮菇爪,并且可以合并有損和無損圖片幀
  • 體積更小算芯,GIF 轉成有損 Animated WebP 后可以減小 64% 的體積,轉成無損可以節(jié)省 19% 的體積
  • 顏色更豐富凳宙,支持 24-bit 的 RGB 顏色以及 8-bit 的 Alpha 透明通道(而 GIF 只支持 8-bit RGB 顏色以及 1-bit 的透明)
  • 添加了關鍵幀熙揍、metadata 等數(shù)據(jù)

Animated WebP存在的問題:

  • 消耗較多的 CPU 和解碼時間(多 1.5~2.2 倍)
  • 和 GIF 相比起來支持度還不夠,目前仍無法通用
  • 為了支持 Animated WebP氏涩,Chrome 的新內核 Blink 添加了近 1500 行的代碼

總結

根據(jù)以上各種圖片格式的優(yōu)缺點對比届囚,我們可以根據(jù)應用場景有梆,選擇適合我們的圖片格式。對于從網(wǎng)絡加載的圖片意系,無論是PC泥耀,還是移動端,建議采用Webp格式蛔添。

引用

在網(wǎng)頁上使用JPG痰催、PNG和SVG:新手指南 | Cheesecake Labs

WebP探尋之路

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市迎瞧,隨后出現(xiàn)的幾起案子陨囊,更是在濱河造成了極大的恐慌,老刑警劉巖夹攒,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蜘醋,死亡現(xiàn)場離奇詭異,居然都是意外死亡咏尝,警方通過查閱死者的電腦和手機压语,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來编检,“玉大人胎食,你說我怎么就攤上這事≡识” “怎么了厕怜?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長蕾总。 經(jīng)常有香客問我粥航,道長,這世上最難降的妖魔是什么生百? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任递雀,我火速辦了婚禮,結果婚禮上蚀浆,老公的妹妹穿的比我還像新娘缀程。我一直安慰自己,他們只是感情好市俊,可當我...
    茶點故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布杨凑。 她就那樣靜靜地躺著,像睡著了一般摆昧。 火紅的嫁衣襯著肌膚如雪撩满。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天,我揣著相機與錄音鹦牛,去河邊找鬼搞糕。 笑死,一個胖子當著我的面吹牛曼追,可吹牛的內容都是我干的窍仰。 我是一名探鬼主播,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼礼殊,長吁一口氣:“原來是場噩夢啊……” “哼驹吮!你這毒婦竟也來了?” 一聲冷哼從身側響起晶伦,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤碟狞,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后婚陪,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體族沃,經(jīng)...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年泌参,在試婚紗的時候發(fā)現(xiàn)自己被綠了脆淹。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,727評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡沽一,死狀恐怖盖溺,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情铣缠,我是刑警寧澤烘嘱,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站蝗蛙,受9級特大地震影響蝇庭,放射性物質發(fā)生泄漏。R本人自食惡果不足惜歼郭,卻給世界環(huán)境...
    茶點故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一遗契、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧病曾,春花似錦、人聲如沸漾根。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽辐怕。三九已至逼蒙,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間寄疏,已是汗流浹背是牢。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工僵井, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人驳棱。 一個月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓批什,卻偏偏與公主長得像,于是被迫代替她去往敵國和親社搅。 傳聞我的和親對象是個殘疾皇子驻债,可洞房花燭夜當晚...
    茶點故事閱讀 44,619評論 2 354

推薦閱讀更多精彩內容