JPEG 圖片 (.jpg)
ISO/IEC 標準JPEG 是數位攝影與網路影像最廣泛採用的有損壓縮標準,它利用了人眼對亮度比對色度具有更高敏感度的特性。
將 PNG 轉換為 JPG
免費的瀏覽器端 PNG 轉 JPG 轉換器。在您的裝置上即時轉換檔案。
線上壓縮 JPG
具隱私保障 - 檔案絕不會離開您的裝置
檢查與中繼資料
作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 JPG 檔案:
位元組層級標頭簽章(檔案簽章)
作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 JPG 檔案:
十六進位簽章(偏移量 0):
FF D8 FFASCII 表示法: ÿØÿ
標準化: ISO/IEC 10918-1 / ITU-T T.81
技術規格
| 容器架構 | 包裝在 JFIF 或 EXIF 標頭中的標記分隔二進位串流(0xFF 字首) |
| 壓縮 | 有損離散餘弦轉換(DCT)+ 遊程編碼與霍夫曼熵編碼 |
| 位元組序 | 標記長度與量化表採用大端序(Big-Endian);Exif 可以是小端序(II)或大端序(MM) |
| 色彩空間 | sRGB, Adobe RGB, CMYK, Y'CbCr, 灰階 |
| 色版與結構 | 每個通道 8 位元(24 位元全彩)或 8 位元灰階 |
| 最大尺寸 | 65,535 x 65,535 像素(2 位元組無號整數) |
| 透明度 | 無(僅不透明;不支援 alpha 通道) |
| 串流與漸進式 | 漸進式 JPEG 編碼會儲存從低解析度到高解析度的多次頻譜掃描 |
技術比較矩陣:JPG 對比競爭格式
| 技術屬性 | JPG (目前) | WebP | AVIF | PNG |
|---|---|---|---|---|
| 壓縮範式 | 有損 DCT + 霍夫曼編碼 | 有損(VP8)與無損 | 有損(AV1)與無損 | 無損 Deflate |
| Alpha 透明度 | 不支援 alpha 通道(始終不透明) | 8 位元 alpha 透明度 | 8 位元 / 10 位元 / 12 位元 alpha | 完整的 8 位元 / 16 位元 alpha |
| 硬體解碼 | 許多 GPU 與行動 SoC 提供硬體解碼;支援狀況因晶片與裝置而異 | 現代 SoC 普遍支援硬體解碼 | 現代 GPU 的硬體解碼正快速普及 | 基於 CPU 的快速解碼 |
| 壓縮效率 | 相片的良好基準 | 可能比 JPEG 更小;結果因圖片與編碼器而異 | 可能比 JPEG 更小;結果因圖片與編碼器而異 | 對相片內容沒有效率 |
| 色彩位元深度 | 標準每個色彩通道 8 位元(24 位元全彩) | 每個色彩通道 8 位元 | 10 位元與 12 位元 HDR 寬廣色域 | 每個色彩通道 8 位元與 16 位元 |
常見損壞模式與十六進位修復指南
圖片檢視器顯示「JPEG 檔案提早結束」(Premature end of JPEG file),或者相片下半部為純灰色或彩色條紋。
根本原因: 下載遭截斷或儲存寫入不完整,遺失了 0xFFD9 (EOI) 結尾標記與影像掃描酬載。
修復: 將標記 0xFFD9 附加至遭截斷串流的結尾,讓解碼器能夠顯示相片完好的上半部。
圖片色彩嚴重偏移、反轉或呈現迷幻風格。
根本原因: CMYK 色彩空間標頭反轉或內嵌的 ICC 設定檔無效。
修復: 使用 ImageMagick 將色彩空間從 CMYK 轉換為 sRGB(「magick broken.jpg -colorspace sRGB fixed.jpg」)。
檔案無法開啟並回報「發現無效標記(Invalid marker found)」。
根本原因: 量化表(DQT 0xFFDB)或霍夫曼表(DHT 0xFFC4)標頭內部發生位元損毀。
修復: 以從完好 JPEG 擷取出的標準基準 JFIF 霍夫曼表與量化表,替換受損的標頭標記。
安全性分析與解析器攻擊向量
JPEG 安全性主要涉及中繼資料隱私外洩(EXIF)以及舊版 C 語言解碼器(libjpeg)中的緩衝區溢位。
已知攻擊向量
- 敏感中繼資料外洩:未剝除的 EXIF 標頭包含 GPS 座標、相機序號與縮圖預覽。
- 舊版 libjpeg 解析中的緩衝區過度讀取與整數溢位,會損毀重新啟動標記(RST)或漸進式掃描指令碼。
- 結合 JPEG 標頭與可執行 ZIP 或 RAR 封存檔的多語檔(Polyglot files)。
防禦最佳實務: 發布使用者相片時,務必剝除 EXIF 與 GPS 地理定位中繼資料以保護使用者隱私。請使用現代記憶體安全的解碼器(例如 Rust 中的 image-rs)或經過沙箱隔離的 WebAssembly 解碼器。
歷史起源與里程碑
主要優勢與優點
- 影像軟體與硬體普遍支援 JPEG 解碼,但相容性會因裝置與應用程式而異。
- 針對相片連續色調具有極佳的壓縮率(10:1 至 20:1)。
- 酬載佔用空間小,並具備漸進式算繪功能。
技術限制與缺點
- 有損壓縮會在銳利邊緣沿線造成壓縮失真(振鈴效應與塊狀效應)。
- 不支援透明度通道。
- 每次解壓縮、編輯和重新儲存檔案時,都會發生世代損失。
有趣的技術冷知識
- 用於開發 JPEG 壓縮的經典「Lenna」測試圖片是從 1972 年 11 月號的花花公子雜誌中掃描而來的。
- JPEG 4:2:0 子取樣將色度解析度在水平與垂直方向均減半,且視覺感知幾乎沒有劣化。
- 每個標準 JPEG 都以標記 0xFFD8(影像開始)開頭,並以 0xFFD9(影像結束)結尾。
常見技術問題
為什麼多次儲存 JPEG 檔案會降低圖片品質?
JPEG 是一種有損壓縮格式,且過程無法逆轉。每次您將 JPEG 解壓縮並重新儲存時,DCT 量化步驟都會捨棄高頻空間細節,並重新近似 8x8 像素區塊,從而導致累積的「世代損失」(generation loss)失真。
什麼是漸進式 JPEG?為什麼它很有用?
標準基準 JPEG 會由上到下逐掃描線解碼。漸進式 JPEG 會在多次頻譜掃描中編碼影像資料,讓瀏覽器能夠立即呈現整張影像的低解析度模糊畫面,並隨著資料下載逐漸將其銳利化。
什麼是色度子取樣(4:2:0 與 4:4:4)?
人眼視網膜的視桿細胞(亮度)多於視錐細胞(色彩)。JPEG 利用此特性,在維持完整亮度解析度(Y)的同時,將色彩解析度(Cb、Cr)在水平與垂直方向減半(4:2:0),在幾乎無感知的失真下,於壓縮前削減 50% 的原始資料。
JPEG 圖片可以有透明背景嗎?
不行。標準的 JPEG 規格沒有 alpha 通道(透明通道)的概念。如果需要透明度,您必須將圖片轉換為 WebP、AVIF 或 PNG。
相關的 JPG 轉換對
將 PNG 點陣圖轉換為 JPEG 格式能透過有損壓縮減少檔案大小,讓圖片在網站上載入更快並節省儲存空間。
將有損的 JPEG 點陣圖轉換為無損的 PNG 點陣圖,可防止進一步的世代損失並增加對 Alpha 色頻透明度的支援。
將 JPEG 圖片轉換為 WebP 可以在具備相近視覺品質的同時縮減檔案大小,不過實際結果會因圖片內容與編碼設定而異。
將 WebP 轉換為 JPEG 可以讓靜態圖片更容易在不支援 WebP 的軟體中使用;JPEG 無法保留透明度或動畫。
將 HEIC 相片轉換為 JPEG 圖片,可將蘋果的預設相機格式變更為適用於舊版軟體與網頁瀏覽器的廣泛可讀點陣圖檔案。
將 AVIF 圖片轉換為 JPEG 有助於相容不支援 AV1 Image File Format 的較舊軟體。
透過先進的現代視訊編碼技術,將舊版 JPEG 圖片轉換為 AVIF 圖片能在保持高視覺逼真度的同時,大幅縮減檔案大小。
將大型的 Adobe Photoshop PSD 構圖轉換為精簡且便於檢視的 JPEG 相片。