如果JPG的圖片容量能縮小50%且畫質幾乎一樣的話,你會改用這種格式存圖嗎?
以下是.jxl格式的圖片,如果你的瀏覽器支援,應該會看到我婆。
Firefox最近版本(v.152)加入實驗性JPEG XL(.jxl)支援了,需要在系統設定開啓。
Chromium在2023年獨斷的將JPEG XL移除後,又在2026年(v.145)把它加回來了,但需要在chrome://flags開啓才能顯示。
你可以開啓這個網站看你的瀏覽器是否支援JPEG XL(.jxl):https://jpegxl.info/resources/jpeg-xl-test-page.html
這難道是因爲Safari的推波助瀾?Apple在iPhone 16之後加入了JPEG XL來作爲照片儲存格式,(可能)蛋雕了需要專利費用的HEIF,這是好事呀,我們不用再被HEVC荼毒了。
1. JXL簡介 #
根據官網資料,JPEG XL(副檔名.jxl)是2017年開始設計的一種新型圖片格式,支援有損以及無損壓縮。至於JPEG(副檔名.jpg或.jpeg)已經是1992年設計的格式了。
研究一下才發現其實JPEG XL還不錯,比起完全的新格式WEBP和AVIF,JPEG XL保留對JPEG的相容性。JPEG XL能無損轉換回JPEG,也能從JPEG無損轉爲JPEG XL,是現代化的JPEG!
JPEG XL的圖片容量較JPEG小,圖片壓縮後不容易出現鋸齒狀。輸出編碼速度快。10bit色彩深度和HDR特性它都有,支援PNG的透明圖層,甚至還能做動圖,威脅GIF與WEBP的地位。
JPEG XL擺脫了JPEG的專利費問題,整合了開源社群的PIK與FLIF技術,還提供BSD授權的libjxl編碼器參考實作。
注解:JPEG在20年前曾經有侵犯專利的問題,但後來解決了,參照:USPTO to re-examine JPEG patent。至於JPEG 2000、JPEG XR仍有其潛在問題,此處不細講。JPEG XL應該是擺脫了這些問題了吧。
2. JXL對網頁設計的影響 #
那…我架站的網頁圖片應該不要用WEBP了,跳過對AVIF的遷移,直接all-in到JPEG XL!?
以前因爲圖片流量太高我就想用其他格式來降低成本,用Image CDN Pipeline來傳遞圖片並即時轉檔要多花一筆錢,我覺得還是我主動壓縮比較好吧。
三年前我還把AVIF當寶,因爲各大系統當時都在支援AVIF了,一度將網頁圖片都輸出爲AVIF。一個月觀察流量下來減少了一半左右。結果基於務實考量,折衷選了更早普及的WEBP。
因爲我做靜態網頁,我是不想用Image CDN Pipeline來在網頁裡面提供fallback模式的兩種圖片格式啦,只要一種檔案就好。意思是說我圖片不要提供PNG,只要有JXL就好了吧。
JXL看起來很有潛力。就等未來瀏覽器的支援成熟吧。瀏覽器JXL支援度看:https://jpegxl.info/resources/supported-software.html
3. 支援JXL的看圖軟體 #
雖然JPEG XL好像很前瞻,不過舊有的JPG看圖軟體還是無法打開JXL就是了,需要軟體更新,也就是使用libjxl或其他函式庫。
JXL的軟體支援度看:https://jpegxl.info/resources/supported-software.html
Linux系統很早就有libjxl,很多軟體能連結到,所以很多軟體都支援JPEG XL,譬如KDE Gwenview和Nomacs。主流發行版如Ubuntu 26.04應該也支援JPEG XL了。
macOS 14之後加入了JPEG XL支援。Windows可以使用XnView查看JPEG XL。
iOS 17以上有JPEG XL支援,Android不知道什麼時候才要加入?
4. PNG大圖轉檔爲JXL的大小比較 #
嗯…根據我在GIMP v3.2裡面的測試,將.png (22.2MB) 圖片轉檔輸出,結果.jxl (2.1MB) 沒有比.avif (457KB) 小耶,只比.jpg (4.8MB) 小50%。

調整一下參數。把壓縮比調最大.jxl才會比.avif小,但放大後像素就會整個模糊掉了呢。這可以說明,.avif在有損壓縮略勝.jxl一籌吧,能得到極致小的檔案。
如果是以無損方式轉檔,.jxl (15.8MB) 檔案小於quality設定100的.jpeg (15.4MB) ,但還是大於.avif(13.9MB)呢。可能.jxl的演算法還要優化一下吧。
輸出過程.jxl (libjxl) 是有感的比.avif (libaom) 快,不過也才差幾秒鐘而已。
我順便測試了.jpg無損轉.jxl的效果,將.png (22.2MB) 轉爲quality 100的.jpg爲15.4MB,再無損轉爲.jxl就變成了16.4MB!?
也許是GIMP用的編碼器太舊了?我改用ImageMagick 7.1.2轉檔測試。
.png (22.2MB) 有損壓縮
→ .jxl (2.1MB)
→ .avif (537KB)
.png (22.2MB) 無損壓縮
→ .jxl (15.8MB)
→ .avif (17.4MB)
嗯嗯?看來互有勝負。
最後用libjxl的參考實現cjxl來轉檔。結果也是差不多的說。