從第一台 PC 起,筆者便對電腦如何用 0/1 存儲複雜圖像著迷。位圖檔案將重現圖像所需的所有資訊編碼為位元組序列,不同格式有各自的編碼規則。本文淺析 PC 上最常見的六種位圖格式,幫助讀者理解圖像資料在磁碟上的真實面貌。
BMP (Windows Bitmap)
- Windows 原生格式,副檔名 .bmp 或 .rle (RLE 壓縮)
- 支援 1/4/8/16/24 位色深,24 位可達 1600 萬色
- 結構四部分:檔案頭、資訊頭、調色盤(1/4/8位)、像素資料
- 像素儲存順序:左→右,下→上;每行 4 位元組對齊
- 16/24 位無調色盤,像素直接存 RGB;支援 RLE 壓縮
PCX (ZSoft Paintbrush)
- 早期 PC 標準格式,副檔名 .pcx
- 三部分:128 位元組檔案頭、RLE 壓縮像素資料、可選 256 色調色盤
- 支援 1/4/8/24 位色深,從 CGA/EGA 延伸至 VGA/真彩色
- 結構簡單,但已逐漸淡出主流
TIFF (Tagged Image File Format)
- 副檔名 .tif,結構最複雜但最靈活
- 8 位元組檔案頭 (IFH) 指向影像檔案目錄 (IFD)
- IFD 由 70 多種標籤組成,儲存寬高、調色盤、像素資料等
- 支援多圖像、多種壓縮 (RLE, LZW 等),LZW 需授權
- 跨平台首選,但讀寫程式相容性常有問題
GIF (Graphics Interchange Format)
- Compuserve 開發,副檔名 .gif,廣泛用於網頁
- 版本 GIF87a/GIF89a,13 位元組檔案頭 + 全域/區域調色盤
- LZW 壓縮,最多 256 色,支援多幀動畫、透明、文字註解
- 專利授權問題 (Compuserve/Unisys) 曾限制普及
PNG (Portable Network Graphics)
- 為替代 GIF 而生,發音 "ping"
- 繼承 GIF 優點,支援真彩色、Alpha 通道
- 採用 LZ77 衍生演算法 (Deflate) 壓縮,免專利費
- 現代網頁無損圖像首選格式
JPEG (Joint Photographic Experts Group)
- 副檔名 .jpg/.jpeg,專為照片類真彩色圖像設計
- 有損壓縮:犧牲不可察覺細節換取高壓縮率 (常達 50%+)
- 流程:8×8 區塊 → DCT 離散餘弦變換 → 量化 → 無損編碼
- 量化因子決定品質/大小平衡,需針對圖像調整
- 不適合銳利邊緣、文字、簡單圖形 (無損壓縮更佳)
總結對比
| 格式 | 壓縮 | 色深 | 特色 | 適用場景 |
| BMP | 無/RLE | 1-24位 | Windows原生,結構簡單 | Windows開發、中間檔 |
| PCX | RLE | 1-24位 | 早期標準,結構簡單 | 舊系統相容 |
| TIFF | 多種 | 1-48位 | 極度靈活,可擴展 | 專業印刷、跨平台交換 |
| GIF | LZW | ≤8位(256色) | 動畫、透明、網頁通用 | 簡單動畫、圖示、網頁 |
| PNG | Deflate | 1-48位+Alpha | 無損、免專利、支援透明 | 網頁圖像、截圖、需透明場景 |
| JPEG | 有損 | 24位 | 高壓縮、照片效果佳 | 數位相片、網頁照片 |
理解各格式內部結構,有助於選擇適合專案需求的儲存方案,也能在開發圖像處理軟體時避開常見陷阱。