使用方法
- 將 GIF 拖到上傳區域,點選選擇檔案,或貼上圖片。
- 保持原格式,並且不要設定最大寬度,這樣動畫才會保留。
- 檢視原始大小和編碼後大小,GIF 動圖的體積增長很快。
- 複製 img 標籤或 CSS background-image 輸出,也可以使用 Data URI、純 Base64 或 Markdown 版本。
關於 GIF 格式
GIF(圖形交換格式,MIME 型別為 image/gif)誕生於 1987 年。每一幀最多使用 256 色的調色盤,並以 LZW 演算法無失真壓縮。它的透明只有「有」和「無」兩種:可以把調色盤中的一種顏色設為透明,但不支援半透明。一個檔案可以包含多幀,每幀有各自的停留時間,還能設定迴圈次數,因此 GIF 成了短動畫的代名詞。
GIF 的 Base64 以 R0lGODlh 開頭(常見的 GIF89a 版本),較老的 GIF87a 則以 R0lGODdh 開頭。
如何保留動畫
保持原格式時,工具會原樣編碼檔案位元組,因此生成的 Data URI 無論放在 <img> 標籤裡還是作為 CSS 背景,都會和原檔案一樣播放動畫。
轉換為 PNG、JPEG 或 WebP,或者設定最大寬度,都會讓瀏覽器重新繪製圖片,最終只剩第一幀。想得到動圖的靜態預覽時這很方便,但如果要保留動畫,請不要開啟這兩個選項。
GIF Data URI 仍然適用的場景
- CSS 中的小型載入動畫和動態狀態圖示。
- 經典的 1x1 透明像素,用作佔位的
src。它只有幾十個位元組,Base64 後遠不到 100 個字元。 - 顏色很少的簡單線條圖,GIF 在這類圖片上相當緊湊。
大尺寸動畫則不合適。一個 2 MB 的表情包動圖會變成約 2.7 MB 的文字,而且無法單獨快取;改用外鏈的影片檔案或動態 WebP 要輕得多。
.loading {
background: url("data:image/gif;base64,R0lGODlh...") no-repeat center;
}
<img src="data:image/gif;base64,R0lGODlh..." width="32" height="32" alt="載入中">
常見問題
Base64 編碼後 GIF 還會動嗎?
會,只要保持原格式且不縮放尺寸。Base64 儲存的是完整檔案,包括所有幀和迴圈設定。
為什麼轉換後 GIF 不動了?
轉換為 PNG、JPEG、WebP 或縮放尺寸時,圖片會從第一幀重新渲染。本工具無法生成動態 PNG 或動態 WebP,想保留動畫就請使用原始 GIF。
GIF 的 Data URI 會保留透明背景嗎?
如何把 Base64 字串還原成 GIF?
把字串貼上到 Base64 轉 GIF 中,即可預覽並下載為 .gif 檔案。