動畫 GIF (.gif)
CompuServe 標準圖形交換格式(GIF)是一種基於 8 位元色盤的點陣圖格式,由 CompuServe 開發,因在早期網路上普及短篇循環動畫而聞名全球。
將 GIF 轉換為 MP4
免費的瀏覽器端 GIF 轉 MP4 轉換器。在您的裝置上即時轉換檔案。
線上壓縮 GIF
具隱私保障 - 檔案絕不會離開您的裝置
檢查與中繼資料
作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 GIF 檔案:
位元組層級標頭簽章(檔案簽章)
作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 GIF 檔案:
十六進位簽章(偏移量 0):
47 49 46 38ASCII 表示法: GIF8
標準化: CompuServe GIF87a / GIF89a 規格
技術規格
| 容器架構 | 基於串流的色盤圖片格式,帶有區塊標頭與結尾(0x3B) |
| 壓縮 | Lempel-Ziv-Welch (LZW) 無損字典壓縮 |
| 位元組序 | 畫布尺寸與延遲計時器採用小端序(Little-Endian) |
| 色彩空間 | 索引式 8 位元色盤(每張影格最多 256 色) |
| 色版與結構 | 帶有 1 位元二元透明度(開/關)的索引色盤 |
| 最大尺寸 | 65,535 x 65,535 像素(2 位元組無號整數) |
| 透明度 | 1 位元二元透明度(標記為透明的單一色彩索引) |
| 串流與漸進式 | 基本規格支援 4 道交錯掃描演算法 |
技術比較矩陣:GIF 對比競爭格式
| 技術屬性 | GIF (目前) | 動態 WebP | MP4 (H.264) | APNG |
|---|---|---|---|---|
| 檔案大小 | 非常大(影片影格的壓縮效果差) | 通常小於 GIF;結果取決於圖片內容與編碼設定 | 可以小於 GIF;結果取決於圖片內容與編碼設定 | 中等 |
| 色彩支援 | 每張影格最多 256 色 | 約 1,670 萬種色彩(16.7 million,24 位元全彩) | 約 1,670 萬種色彩(16.7 million,YUV 4:2:0) | 約 1,670 萬種色彩(16.7 million,24 位元全彩) |
| 透明度 | 僅支援 1 位元二元透明度(邊緣有鋸齒) | 完整的 8 位元平滑 alpha 通道 | 無原生透明度 | 完整的 8 位元平滑 alpha 通道 |
| 平台支援 | 在許多目前與舊版平台上獲得廣泛支援 | 受到許多目前的瀏覽器支援;可用性各有不同 | 受到許多影片播放器與瀏覽器支援;可用性各有不同 | 受到許多目前的瀏覽器支援;可用性各有不同 |
常見損壞模式與十六進位修復指南
動畫僅播放部分即凍結,或圖片檢視器回報未預期的 EOF。
根本原因: 因下載不完整而缺少結尾標記位元組 0x3B(分號)。
修復: 使用十六進位編輯器在檔案結尾附加位元組 0x3B。
安全性分析與解析器攻擊向量
GIF 檔案很簡單,但歷史上曾遭受 LZW 擴充緩衝區溢位攻擊與 GIFAR 多格式檔案(polyglot)攻擊。
已知攻擊向量
- 較舊的原生解碼器中的 LZW 緩衝區溢位漏洞。
- GIFAR 多格式檔案攻擊:精心製作同時是有效 GIF 與有效 Java JAR 的檔案,以繞過上傳過濾器。
防禦最佳實務: 即時將使用者上傳的動態 GIF 轉碼為 MP4 或動態 WebP,以節省頻寬並消除多格式檔案威脅。
歷史起源與里程碑
主要優勢與優點
- GIF 受到許多瀏覽器和圖片工具支援,不過各個平台與通訊應用程式的支援度不盡相同。
- 可即時播放,無須進行視訊編解碼器協商或受授權限制。
- 在其 256 色色盤內進行無損壓縮。
技術限制與缺點
- 嚴格受限於 256 色調色盤(會對相片造成嚴重的色彩斷層)。
- 與現代的 MP4、WebM 或動態 WebP 影片格式相比,檔案大小大得多、效率極差(通常大上 5 倍到 10 倍)。
- 1 位元二元透明度會在非白色背景上產生鋸齒狀的像素邊緣(沒有 alpha 混合)。
有趣的技術冷知識
- 創作者 Steve Wilhite 於 2013 年公開澄清,正確的發音是以軟 G 發音的「JIF」。
- 循環動畫並非官方 CompuServe 規格的一部分;網景(Netscape)於 1995 年加入了「NETSCAPE2.0」擴充區塊。
- 在 1994 年,Unisys 宣布將積極對開發 GIF 工具的開發人員執行其 LZW 軟體專利,這直接促使開源社群發明可攜式網路圖形(PNG)格式,作為免專利費的替代方案。
常見技術問題
為什麼動態 GIF 比 MP4 影片大得多?
GIF 於 1987 年設計為靜態圖片格式。它缺少現代影片壓縮概念,例如影格間移動向量、巨集區塊與時間預測編碼。它將每張影格儲存為完整的獨立點陣圖,因而導致龐大的檔案大小。
我要如何縮減 GIF 的大小?
您可以減少調色盤中的顏色數量、降低影格率(例如從 30 fps 降至 15 fps)、縮小像素尺寸,或直接將檔案轉換為較新的動態 WebP 或 MP4。
GIF 支援聲音或音訊軌道嗎?
不支援。CompuServe GIF 規格完全是針對點陣圖影格與時間延遲而建構的;它不包含音訊串流的資料結構或同步容器。看似播放「帶聲音的 GIF」的現代平台,實際上提供的是靜音或可取消靜音的 MP4/WebM 影片檔案。
相關的 GIF 轉換對
將動態 GIF 轉換為 MP4 會將其影格重新編碼為影片;檔案大小、顏色和播放行為取決於輸入、編碼器設定與目標播放器。
將 MP4 影片循環轉換為動態 GIF 可以建立一個廣泛支援的圖片格式,不需要影片播放器就能自動播放。
當目標支援 GIF 但不支援 APNG 時,將 APNG 轉換為 GIF 會很有幫助。GIF 將每個影格限制在最多 256 種顏色的調色盤,且播放仍取決於目標瀏覽器或應用程式。
將動態 GIF 轉換為 APNG 檔案,可將傳統的 256 色點陣動畫升級為具有平滑透明度的現代真彩色序列。
將 Lottie 向量動畫 JSON 檔案轉換為點陣動態 GIF,搭起了現代程式驅動圖形與廣泛支援的圖片相容性之間的橋樑。
將動態 WebP 檔案轉換為動態 GIF,可在現代點陣動畫格式與需要廣泛相容性的舊版網頁標準之間搭起橋樑。
將 GIF 的第一個影格轉成單頁 PDF,用於分鏡腳本或報告。後續影格、播放時序和循環播放資訊都不會包含在內。