# GIF to PNG

> 在瀏覽器內把 GIF 的一格轉成 PNG。動畫停在第一格，256 色調色盤與硬邊緣都不會補回來，實測成品反而比原始 GIF 小了 19%，因為 256 色本來就能存成索引 PNG。

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

## What it does

### GIF 轉成 PNG 會失去什麼

這是全站損失清單最短的一條路線，理由很單純：GIF89a 沒有 EXIF 區塊、沒有 ICC 色彩描述檔，也裝不下比 8-bit 索引色更深的東西，所以根本沒有元資料或精度可丟。唯一真正的損失是動態。來源影格超過一格時，工具會留下第一格、關掉解碼器，並警告只轉了那一格；其餘影格、各自的間隔時間與循環次數不會被寫到任何地方，因為輸出是單張影像。把目標設成 WebP，或乾脆維持原格式，就能保住整段動畫，這兩個選項在上面的設定裡都是一鍵的事。

新格式做不到的，是取消舊格式早就做完的妥協。畫面早已被縮到最多 256 色，通常還靠抖色假裝出其餘的顏色，而 24-bit 色彩空間根本沒有多的東西可以填進去：天空上的色帶、漸層上那層點狀紋理、偏掉的膚色，都會原樣被記下來。成品看起來和來源一模一樣，這正是無損轉檔該有的樣子，但一模一樣不等於變好。

透明度也有同樣的但書。GIF 的透明只有一個位元：像素不是完全不透明，就是完全看不見，中間沒有灰色地帶。輸出格式支援 8-bit alpha 色版，所以它有能力描述柔邊，可惜沒有柔邊可以描述。logo 四周的鋸齒階梯會原樣留著，當初合成用的底色和現在這個頁面不同時產生的邊圈也會留著——深色背景上的圖形外圍出現一圈白邊就是最典型的情況。要把這個邊緣柔化是編輯工作，轉檔沒辦法無中生有那些從未被儲存的覆蓋率數值。

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

作為一個轉進無損格式的動作，這次的檔案居然變小了。2026-09-12 的腳本測的是以 256 色加 Floyd–Steinberg 抖色寫出的 1280 × 854 GIF，792,677 位元組；把「最佳化 (oxipng)」打開之後轉換是 641,534 位元組，約小 19%。那個勾選框預設是關的，維持關閉的話，瀏覽器自己的 PNG 通常還會再大一點。這不矛盾：因為來源的顏色不超過 256 種，新的編碼器同樣能把它存成 8-bit 索引影像，而 DEFLATE 搭配逐列預測濾波，對同一份調色盤資料通常壓得比舊的 LZW 更好。平面圖形可以期待相當或更好的結果；抖色很重的照片優勢就小得多，因為抖色雜訊在兩種格式裡都會讓預測失準。

### 什麼時候不該把 GIF 轉成 PNG

還想讓它動的動畫別轉——那正是這條路線唯一會丟掉的東西，而把目標設成 WebP 既能保住每一格，檔案通常還比原本小得多。想靠它把色彩深度、平滑漸層或乾淨邊緣救回來也不可能，那需要原始素材，不是換個格式。電子報樣板或只吃舊格式的老系統要用的素材同樣別轉。這個轉檔真正派得上用場的時機是：你想要一張乾淨的靜態畫面當縮圖或封面、某個工具或流程不收來源格式，或者你只是想把同一張圖換成更小、也更容易被現代軟體處理的樣子。

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

## Limits

這是全站損失清單最短的一條路線，理由很單純：GIF89a 沒有 EXIF 區塊、沒有 ICC 色彩描述檔，也裝不下比 8-bit 索引色更深的東西，所以根本沒有元資料或精度可丟。唯一真正的損失是動態。來源影格超過一格時，工具會留下第一格、關掉解碼器，並警告只轉了那一格；其餘影格、各自的間隔時間與循環次數不會被寫到任何地方，因為輸出是單張影像。把目標設成 WebP，或乾脆維持原格式，就能保住整段動畫，這兩個選項在上面的設定裡都是一鍵的事。

新格式做不到的，是取消舊格式早就做完的妥協。畫面早已被縮到最多 256 色，通常還靠抖色假裝出其餘的顏色，而 24-bit 色彩空間根本沒有多的東西可以填進去：天空上的色帶、漸層上那層點狀紋理、偏掉的膚色，都會原樣被記下來。成品看起來和來源一模一樣，這正是無損轉檔該有的樣子，但一模一樣不等於變好。

透明度也有同樣的但書。GIF 的透明只有一個位元：像素不是完全不透明，就是完全看不見，中間沒有灰色地帶。輸出格式支援 8-bit alpha 色版，所以它有能力描述柔邊，可惜沒有柔邊可以描述。logo 四周的鋸齒階梯會原樣留著，當初合成用的底色和現在這個頁面不同時產生的邊圈也會留著——深色背景上的圖形外圍出現一圈白邊就是最典型的情況。要把這個邊緣柔化是編輯工作，轉檔沒辦法無中生有那些從未被儲存的覆蓋率數值。

## FAQ

### GIF 轉成 PNG 之後動畫還在嗎？

不在。只有第一格會被轉換，而且會跳出警告說明。間隔時間與循環次數都不會保存，因為輸出是單張影像而不是 APNG。想保住每一格與它的時間，請把目標改成 WebP。

### PNG 能把 256 色調色盤丟掉的顏色補回來嗎？

不能。減色發生在這次轉檔之前，所以色帶與抖色紋理只是被原樣記下來。更寬的色彩空間沒有多的東西可以裝。要拿回平滑漸層，得回頭找原始素材，而不是換容器。

### 為什麼 GIF 的 logo 轉成 PNG 邊緣還是鋸齒？

因為 GIF 的透明只有一個位元，來源從來沒有存過邊緣中間的覆蓋率。輸出支援 8-bit alpha 色版，但能繼承的只有那張硬邊的開關遮罩，以及原本合成底色留下的邊圈。要柔化它是編輯工作。

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

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

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

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

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

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

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

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