JPG、PNG、WebP 還是 AVIF:圖片格式怎麼選,附實測體積

同樣兩張照片,編碼到同等觀感,四種格式各多大。AVIF 比 JPEG 小 40–45%,WebP 並沒有;每種格式該用在哪,什麼時候存成 PNG 是個錯誤。

一句話

照片:JPEG 仍然夠用,AVIF 小得多;WebP 夾在中間,而且它相對於編碼得當的 JPEG 的優勢,比宣傳數字小。截圖、logo、圖表,以及任何有大片純色或透明的圖:PNG 或無損 WebP,絕不用 JPEG。下面是這些結論背後的數字,來自一次真實的編碼測試,不是廠商圖表。

“更小”必須指什麼

把各格式都設成“品質 80”來比,沒有意義:每種編碼器的品質刻度都不一樣。唯一公平的比法是:同樣的觀感,各多大? 本文的做法是,每種格式從低品質往上編碼,直到與原圖的結構相似度達到同一個值(SSIM 0.98,按亮度通道算),記下那一刻的體積。兩張測試照片:桌上的一杯濃縮咖啡(1200 × 800)和一張人像(1024 × 1024),都是公有領域的樣例圖。編碼器:透過 Pillow 12 呼叫的 libjpeg-turbo、libwebp(method 6)和 libavif(speed 4);本站工具用的是 MozJPEG,通常能在 JPEG 這一欄再省 5–10%。

格式 照片 1(1200×800) 照片 2(1024×1024) 達到的設定
JPEG 95 KB 86 KB q68 / q66
WebP 104 KB 76 KB q86 / q84
AVIF 59 KB 47 KB q60 / q58
PNG(無損) 1 223 KB 1 034 KB —
WebP 無損 860 KB 701 KB —

兩件事很明顯。同等 SSIM 下 AVIF 比 JPEG 小 38–46%——這部分傳言是真的。WebP 在這兩張照片上和 JPEG 基本打平:一張大 9%,一張小 12%。常被引用的“比 JPEG 小 25–34%“來自 Google 2010 年的研究,對比物件是一個未經最佳化的 JPEG 編碼器,而且是固定品質設定;面對現代編碼器、按同等觀感比,這個差距大部分消失了。有一點對 WebP 有利:低位元速率下它對細節和銳利邊緣的處理比 JPEG 略好,而 SSIM 對此給分偏低。有一點對它不利:WebP 的色度只能 4:2:0 子取樣,所以照片上飽和的紅色文字會有輕微糊邊,而 4:4:4 的 JPEG 不會。

對測試本身的一個說明:兩張源圖本來就是 JPEG,所以每個編碼器都是在壓縮“畫面 + 上一次的壓縮痕跡”。從 RAW 或 PNG 原件出發,三種有損格式都會再小一點,排名不變。

PNG 是給另一種圖用的

表裡 PNG 是 JPEG 的十二倍。這不是 PNG 差,是讓 PNG 幹了不該它乾的活。PNG 是無損的——每個畫素原樣回來——而照片每個畫素裡都有噪點,噪點壓不動。換第三張測試圖,一張純色塊、透明背景的去背插畫(900 × 600),局面反過來:

格式 體積
PNG 66 KB
WebP 無損 55 KB
AVIF q80 54 KB
JPEG q90 76 KB,而且透明沒了

純色、文字、截圖、圖表、logo:PNG 或無損 WebP。截圖存成 JPEG,每個字母周圍都是振鈴噪波,而且通常比 PNG 更大。照片存成 PNG,是一個以 MB 計的錯誤,會體現在網頁載入時間和被退回的郵件上。

瀏覽器和軟體支援,實話實說

  • JPEG:一切,從 1992 年起。凡是要交出你控制範圍的東西——沖印店、政府表單、老安卓手機、Word 檔案——用它最穩。
  • PNG:2005 年以後的一切。
  • WebP:所有現行瀏覽器(Safari 從 14 起,2020 年)。Windows 照片能開啟;舊版 Office、多數照片印表機和很多上傳表單還不行。
  • AVIF:Chrome 85+、Firefox 93+、Safari 16.4+(2023)、Edge 121+。瀏覽器之外支援很薄:Windows 要裝 Store 擴充套件,macOS Ventura 以上原生支援,其它軟體大多不行。到 2026 年,它是一個在網頁上提供圖片的格式,不是一個交給別人的格式。
  • HEIC:實際上只有蘋果裝置——見 HEIC 是什麼。

怎麼選

  • 把照片發給人或表單:JPEG,品質 80–85。90 以上體積翻倍,差別沒人看得出。
  • 自己網站上的照片:AVIF 加 JPEG 後備(<picture>);圖片流水線還出不了 AVIF 就用 WebP。
  • 截圖、logo、圖表、任何帶透明的:PNG;消費方是瀏覽器時用無損 WebP。
  • 歸檔自己的照片:原件是什麼就留什麼,不要“轉一下省空間”——每次有損重編碼都在減分。

轉格式在瀏覽器裡在這四種格式間轉換;壓縮並排顯示前後效果和將要產生的體積,你可以停在看起來真的一樣的那一檔,而不是滑塊預設的那一檔。

本文用到的工具