怎麼用
- 選好或拖入 GIF,頁面會顯示它的尺寸、影格數、總長和檔案大小。
- 在「選壓縮方式」裡挑一種或多種:縮小輸出寬度、減少顏色數、抽掉部分影格。第一次建議從「寬度 75% 或 50%」開始。
- 按「壓縮 GIF」,等進度跑完,下方會並排顯示壓縮前後的畫面、尺寸與檔案大小,確認可以接受再下載。不滿意就調整選項重壓,原檔不會被改動。
三種壓縮方式怎麼選
- 縮小尺寸:等比例縮小,只能縮、不能放大。貼聊天室、社群的動畫,寬度 320 到 480 px 通常就夠。對檔案大小影響最大。
- 減少顏色數:把每一格的調色盤上限降到 128、64、32 或 16 色。畫面單純的插畫、貼圖降色後幾乎看不出差別;照片或漸層會出現明顯色階。
- 抽掉影格:每 N 格只留 1 格,被抽掉的影格的停留時間會併到保留的那一格,動畫總長不變。影格數變少,動作會比較不順,快速動作的 GIF 抽太多會有跳格感。
| 想要 | 可以先試 |
|---|---|
| 檔案稍微小一點、畫質盡量不變 | 寬度 75%,其他不動 |
| 要傳訊息、檔案太大傳不出去 | 寬度 50%,加上每 2 格留 1 格 |
| 畫面單純的貼圖、Logo 動畫 | 顏色降到 64 或 32 色 |
| 檔案已經很小,只想再縮一點 | 只縮寬度,不要動顏色與影格 |
處理方式與保留的內容
本工具先把 GIF 每一格依規格還原成完整畫面(處理「這一格結束後要清除還是保留」的設定,以及局部更新的影格),再依你的選項縮小、挑色,最後重新寫成 GIF。重新編碼時會自動把「和上一格完全相同的像素」改成透明,只存有變化的部分,這是 GIF 能變小的主要原因之一。
- 保留:每一格的停留時間、循環次數(無限、播 N 次,或原本沒有循環設定就只播一次)、透明像素。
- 不保留:GIF 檔案裡的註解、其他程式寫入的附加資料(循環設定除外)。重新編碼後這些資訊會消失。
- 格式限制:GIF 每一格最多 256 色,沒有半透明,這是格式本身的規定,也是為什麼漸層與照片轉成 GIF 容易有色階、檔案又大。
整個過程由你裝置上的瀏覽器在背景執行緒中完成,不經過本站伺服器,處理期間頁面不會卡住,也能隨時取消。頁面只會記錄你按了哪個按鈕與選了哪個選項,不會記錄檔名或檔案內容。
限制
- 壓縮效果依原圖而定,已經最佳化過的 GIF 可能不會變小,甚至變大,頁面會如實顯示。
- 只處理 GIF。想壓縮 JPG、PNG、WebP,請用圖片壓縮;想把圖片或影片做成 GIF,請用GIF 動畫製作。
- 電腦上限 100 MB、約 1,600 萬像素的畫面尺寸;手機上限 40 MB、約 600 萬像素。超過時會直接提示。
- 需要把圖片整張縮放到指定尺寸,也可以用圖片縮放;要在圖片加上浮水印或文字,請用浮水印與梗圖產生器。
常見問題
我的 GIF 會上傳到伺服器嗎?
不會。解碼、縮小、重新編碼都在你的瀏覽器裡完成,檔案從頭到尾沒有離開你的手機或電腦,本站伺服器收不到任何檔案。處理完要先下載,關掉網頁後結果不會留在任何地方。
三種壓縮方式,哪一種最有效?
通常是「縮小尺寸」。寬高各縮成一半,像素數只剩四分之一,檔案常常跟著大幅變小。其次是「抽掉影格」:每 2 格留 1 格,影格數少一半,檔案也大約少一半,代價是動作變得比較不順。「減少顏色數」效果最小,只有在原圖用滿 256 色、畫面又有漸層或雜訊時才明顯。實際能縮多少,要看原圖內容,這裡沒辦法先保證數字,按下壓縮後頁面會直接列出前後大小。
為什麼壓縮後檔案反而變大了?
如果原檔已經用專業工具最佳化過(例如只存「和上一格不一樣的區塊」、顏色也精簡過),本工具重新編碼後可能比原檔還大。遇到這種情況頁面會直接提醒你。可以試著把輸出寬度縮小、顏色數降低或抽掉部分影格;都不想動畫質的話,直接用原檔就好,不用勉強壓縮。
抽掉影格之後,播放速度會變嗎?
不會。被抽掉的影格的停留時間,會加到前一張保留下來的影格上,所以整個動畫跑一圈的總長度和原本一樣,只是畫面更新的次數變少、動作看起來比較頓。例如原本每格 0.05 秒,選「每 2 格留 1 格」之後,每格變成 0.1 秒。
有透明背景的 GIF 壓縮後還是透明的嗎?
會。本工具會檢查畫面裡有沒有真的透明的像素,有的話會保留透明。但 GIF 只有「全透明」和「不透明」兩種,沒有半透明;縮小尺寸時,邊緣介於兩者之間的像素會被歸到其中一邊,邊緣可能比原圖粗糙一點。
原本的循環次數、每格延遲會保留嗎?
會。循環設定(無限循環、播 N 次,或沒有循環設定只播一次)照原檔寫回去;每一格的停留時間也照原檔,只有在你選了抽影格時,才會把被抽掉那幾格的時間併到保留的那一格。GIF 的時間單位是 0.01 秒。
有檔案大小或尺寸上限嗎?大檔會不會卡住?
電腦版檔案上限 100 MB,手機 40 MB;畫面尺寸(寬 × 高)電腦上限約 1,600 萬像素,手機約 600 萬像素,超過會直接告訴你。壓縮工作放在背景執行緒,處理 20 MB、幾百格的大檔時頁面不會卡住,會顯示進度,也可以隨時按「取消」。大檔需要的時間比較長,手機會更久;記憶體真的不夠時,頁面會提示你縮小輸出寬度再試。
檔案損壞或不是真的 GIF,會怎樣?
會直接顯示錯誤訊息,不會產生一個壞掉的檔案。頁面會分辨幾種情況:開頭不是 GIF 格式(例如把 PNG 改成 .gif)、檔案傳到一半中斷、某一格的圖像資料損毀。遇到這些請重新取得原檔再試。
壓縮之後畫質會變差嗎?
會有一點。縮小尺寸一定會損失細節;重新編碼時每一格會重新挑最多 256 色的調色盤,沒有使用抖色(dithering),漸層和照片類畫面可能看得到色階;選了更少的顏色,色階會更明顯。建議從小幅度開始試,對照下方的前後預覽,確認可以接受再下載。
使用別人的 GIF 要注意什麼?
請只處理你自己製作,或已取得授權、有權使用的 GIF。把他人的作品壓縮後再散布、上傳或商用,可能涉及著作權問題;本工具只負責檔案處理,不判斷內容能不能使用。
資料來源與程式庫
- GIF 格式依 W3C 公開的 Graphics Interchange Format, Version 89a 規格書:影格延遲以 0.01 秒為單位、disposal method(0 到 3)、透明色索引、NETSCAPE 循環擴充區塊。解碼(LZW 解壓縮、交錯儲存、影格合成)為本站自行撰寫。
- gifenc 1.0.3,MIT 授權,作者 Matt DesLauriers,是純 JavaScript 的 GIF 編碼器,負責挑調色盤與寫出 GIF 檔。檔案為 npm 官方套件原檔,未經修改(
gifenc.js),在背景執行緒中載入。來源:github.com/mattdesl/gifenc。授權全文:MIT License。
縮小尺寸用面積平均法(每個輸出像素取對應原圖區域的加權平均),透明像素以不透明度加權後再二分為透明或不透明。以上程式庫放在本站自己的伺服器,不從外部網站載入。