# JPG to AVIF

> 在瀏覽器裡把 JPG 重新編成 AVIF，檔案不離開裝置。實測 351,967 位元組反而漲到 480,106；品質 85 這個數字，換一個編碼器就不是同一件事。

- URL: https://bytescope.dev/zh-Hant/image-convert/jpg-to-avif/
- Locale: zh-Hant · Also: [en](https://bytescope.dev/en/image-convert/jpg-to-avif.md) · [ja](https://bytescope.dev/ja/image-convert/jpg-to-avif.md)
- Runs: 檔案不會離開你的瀏覽器 — 全部在本機處理。
- Requires: Any modern browser (Chrome, Edge, Firefox, Safari), desktop and mobile.
- Updated: 2026-09-08

## What it does

### JPG 轉成 AVIF 會失去什麼

結構上沒有東西可以失去：來源沒有 alpha 色版、沒有影格、也沒有超過 8 位元的深度。它有的是一段身世，而這一對真正要講的就是那段身世。第一個編碼器早就把畫面切成 8 × 8 的方塊逐一量化，還把顏色以水平垂直各半的解析度存起來；方塊的交界、高反差邊緣那一圈鬼影、被抹開的顏色，現在都已經是解碼後的像素本身。接手的 AV1 編碼器沒有辦法分辨方塊交界和屋簷線條、量化光暈和真正的高光，於是忠實地把前一個編碼器的錯誤重現出來，還為此花掉位元。原本的損失不會被修好，只是上面多疊一層。

第二層的性格比第一層溫和得多，這也是這一對唯一實在的好處。AV1 的框內預測用的是可變大小的方塊和方向性預測，所以它真的撐不住的時候，比較像是把紋理弄鈍，而不是像來源那樣長出方塊和鬼影。但它也用不到格式最好的那幾樣：交到編碼器手上的是從 canvas 讀回來的 8 位元 RGBA，所以 10 位元輸出和 4:4:4 色度都不在選項裡，來源丟掉的那一半色度解析度也回不來。

像素以外的東西全數落地，因為檔案是重做而不是換殼。拍攝時間、相機與鏡頭、曝光設定、GPS 座標、內嵌的 ICC 色彩描述檔，輸出裡都沒有。唯一效果留得下來的是方向標記：解碼時要的是「該被顯示成的樣子」，所以標成側躺的照片會在編碼之前就把畫素轉正。出來的圖是正的，但從此再也沒辦法靠改一個標記把它轉回去。

### 實測時檔案大小怎麼變

這一對正好打臉行銷話術。2026-09-12，腳本先把 1280 × 854 的素材編成品質 85 的 JPG，351,967 位元組，再以品質 85、速度 8 編成 AVIF：480,106 位元組，大了大約 36%。兩邊都寫 85，而陷阱就在這裡 —— 那是兩個編碼器各自的刻度，瞄準的工作點也不同，libaom 的 85 明顯比 libjpeg 的 85 高得多。再加上這次要它忠實重現的是一張本來就滿是壓縮痕跡的圖，那很貴。「AVIF 能把 JPG 砍一半」的說法，是拿沒壓過的母檔分別編碼、對齊視覺品質之後比出來的，不是在講轉檔，而這筆實測就是轉檔真正的樣子。

### 什麼時候不該把 JPG 轉成 AVIF

不要憑那個標題數字去整批重轉相簿。照這筆證據，你會替每個檔案多加一代有損、抹掉相簿用來排序的日期與地點，還很可能拿到比原本更多的位元組。原始母檔還在的話就從母檔輸出，那才是那個 50% 的來源。要送印刷、寄郵件、丟進只認固定副檔名的表單，或是對方需要 EXIF 來證明來源，也都別轉。已經壓得很兇的 JPG 同理，你只是在用 AV1 的位元保存它的傷。至於為自己管理的頁面轉一張大圖，把品質滑桿往下拉、盯著大小數字比對，那完全站得住腳。

轉換完全在你的瀏覽器內進行 — 不上傳、不排隊、無浮水印。想放幾個檔案都行，可逐一下載，也能打包成 zip。

## Limits

結構上沒有東西可以失去：來源沒有 alpha 色版、沒有影格、也沒有超過 8 位元的深度。它有的是一段身世，而這一對真正要講的就是那段身世。第一個編碼器早就把畫面切成 8 × 8 的方塊逐一量化，還把顏色以水平垂直各半的解析度存起來；方塊的交界、高反差邊緣那一圈鬼影、被抹開的顏色，現在都已經是解碼後的像素本身。接手的 AV1 編碼器沒有辦法分辨方塊交界和屋簷線條、量化光暈和真正的高光，於是忠實地把前一個編碼器的錯誤重現出來，還為此花掉位元。原本的損失不會被修好，只是上面多疊一層。

第二層的性格比第一層溫和得多，這也是這一對唯一實在的好處。AV1 的框內預測用的是可變大小的方塊和方向性預測，所以它真的撐不住的時候，比較像是把紋理弄鈍，而不是像來源那樣長出方塊和鬼影。但它也用不到格式最好的那幾樣：交到編碼器手上的是從 canvas 讀回來的 8 位元 RGBA，所以 10 位元輸出和 4:4:4 色度都不在選項裡，來源丟掉的那一半色度解析度也回不來。

像素以外的東西全數落地，因為檔案是重做而不是換殼。拍攝時間、相機與鏡頭、曝光設定、GPS 座標、內嵌的 ICC 色彩描述檔，輸出裡都沒有。唯一效果留得下來的是方向標記：解碼時要的是「該被顯示成的樣子」，所以標成側躺的照片會在編碼之前就把畫素轉正。出來的圖是正的，但從此再也沒辦法靠改一個標記把它轉回去。

## FAQ

### JPG 轉成 AVIF 之後為什麼變大了？

因為兩個編碼器都被設成 85，但那兩個刻度並不對應，而且新的那個還被要求忠實重現一張本來就滿是壓縮痕跡的圖。實測是 351,967 位元組變成 480,106。把品質滑桿往下拉、看大小數字，不要相信那個數字本身。

### 品質 85 在兩種格式裡是同一件事嗎？

不是。每個編碼器把那個數字對應到自己的量化器，libaom 的 85 瞄準的忠實度明顯比 libjpeg 的高。用同一個滑桿位置比格式，等於在比兩個不同的目標，這也是結果會往你沒預期的方向跑的原因。

### 把整個相簿重轉一遍值得嗎？

通常不值得。每個檔案多一代有損、掉一整份元資料，而實測的樣本還變大了。大家引用的那種大幅縮減是從母檔編碼來的，所以挑需要的幾張從原始素材轉，不要就地重做整個相簿。

### 我的圖片會被上傳到任何地方嗎？

不會。轉換在你的瀏覽器內使用 canvas API 和 Web Worker 完成 — 檔案不會離開你的裝置。沒有上傳步驟、不用排隊，檔案大小也只受限於你電腦的記憶體。

### 轉換後的圖片會保留 EXIF 中繼資料嗎？

不會 — 而這正是特色之一。透過 canvas 重新編碼會移除所有中繼資料：GPS 位置、相機型號、時間戳記和色彩描述檔。輸出只包含像素，而這通常正是你公開分享圖片前想要的結果。

### 可以一次轉換很多張圖片嗎？

可以。拖放或貼上任意數量的檔案；每個檔案都會在背景轉換，各自有進度顯示和下載按鈕，也可以把全部內容打包成 .zip 一次下載。

### 轉檔會讓畫質變差嗎？

看你選的目標格式。不管來源和目標是哪兩種格式，轉換器一律先解碼成原始像素再重新編碼，中繼資料也是這樣被移除的。目標是無損格式（PNG，以及在 256 色限制內的 GIF）時，像素和解碼出來的完全一樣；目標是 JPEG、WebP 或 AVIF 時，則由品質滑桿控制取捨，而且來源本來就是有損檔的話，會再多疊一層損失。
