文档 JPG (.jpg)

ISO/IEC 标准

JPEG 是数字摄影和网页图像中最广泛采用的有损压缩标准,它利用了人眼对亮度(Luminance)的敏感度高于对色度(Chrominance)的敏感度这一特性。

将 PNG 转换为 JPG

免费的浏览器端 PNG 转 JPG 转换器。在您的设备上即时转换文件。

在线压缩 JPG

隐私保护 - 文件不会离开您的设备

检查与元数据

操作系统和文件分析器通过检查开头的二进制字节序列来识别 JPG 文件:

选择或将文件拖放到此处

隐私保护 - 文件不会离开您的设备

或粘贴 Ctrl+V
零网络传输隐私保证: 上传至外部服务器的数据为 0 字节。所有处理均在您的浏览器沙箱中本地完成。

字节级文件头签名 (魔数)

操作系统和文件分析器通过检查开头的二进制字节序列来识别 JPG 文件:

十六进制签名 (偏移量 0):

FF D8 FF

ASCII 表示形式: ÿØÿ

标准化: 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 字节无符号整数)
透明度无(仅不透明;不支持透明通道)
流式传输与渐进式加载渐进式 JPEG 编码存储从低到高分辨率的多个扫描遍次

技术对比矩阵:JPG 对比同类产品

技术属性JPG (当前)WebPAVIFPNG
压缩范式有损 DCT + 霍夫曼编码有损(VP8)和无损有损(AV1)和无损无损 Deflate
Alpha 透明度不支持透明通道(始终不透明)8 位 alpha 透明度8 位 / 10 位 / 12 位 alpha完整的 8 位 / 16 位 alpha
硬件解码专用 JPEG 硬件解码支持情况因芯片和设备而异。现代 SoC 中广泛支持硬件解码现代 GPU 中的硬件解码正在迅速普及基于 CPU 的快速解码
压缩效率照片压缩的良好基准在相同质量下比 JPEG 小 25%-35%在相同质量下比 JPEG 小 40%-55%对摄影内容效率低下
颜色位深标准为每通道 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)文件。

防御性最佳实践: 发布用户照片时,务必剥离 EXIF 和 GPS 地理位置元数据以保护用户隐私。使用现代内存安全的解码器(例如 Rust 中的 image-rs)或沙盒化的 WebAssembly 解码器。

历史渊源与里程碑

1998JFIF 和 EXIF 容器标准确立了其在数码相机领域的统治地位。
1992JPEG 规范正式获批,成为 ISO/IEC 10918-1。
1986联合图像专家组在 ISO 和 CCITT 的支持下成立。

核心优势与特点

  • 许多图像软件和设备都支持 JPEG 解码,但兼容性因设备和应用而异。
  • 针对连续色调的照片具有极佳的压缩比(10:1 至 20:1)。
  • 文件体积小,并具备渐进式渲染能力。

技术局限与劣势

  • 有损压缩会在锐利边缘产生压缩伪影(振铃效应和块状效应)。
  • 不支持透明通道。
  • 文件每次被解压、编辑并重新保存时都会产生代际损失(Generation loss)。

趣味技术冷知识

  • 用于开发 JPEG 压缩的经典“Lenna”测试图像,扫描自 1972 年 11 月号的《花花公子》杂志。
  • JPEG 4:2:0 子采样在水平和垂直方向将色度分辨率减半,且几乎不会造成可感知的画质损失。
  • 每个标准的 JPEG 都以标记 0xFFD8(图像开始)开头,并以 0xFFD9(图像结束)结尾。

常见技术问题

为什么多次保存 JPEG 文件会降低图像质量?

JPEG 是一种不可逆的有损压缩格式。每次解压并重新保存 JPEG 时,DCT 量化步骤都会丢弃高频空间细节并重新近似 8x8 像素块,从而导致累积的"代际损失"伪影。

什么是渐进式 JPEG?它有什么用?

标准的基准 JPEG 是从上到下逐扫描行解码的。渐进式 JPEG 通过多个频谱扫描编码图像数据,允许浏览器立即渲染整张图片的低分辨率模糊效果,并随着字节的下载逐渐使其变清晰。

什么是色度子采样(4:2:0 对比 4:4:4)?

人眼视网膜中的视杆细胞(亮度/明暗)比视锥细胞(颜色)更多。JPEG 利用这一点,在压缩前在水平和垂直方向将色度分辨率(Cb, Cr)减半(4:2:0),同时保留完整的亮度分辨率(Y),从而在视觉无损的情况下丢弃 50% 的原始数据。

JPEG 图像可以有透明背景吗?

不能。标准 JPEG 规范没有 alpha 通道的概念。如果需要透明度,必须将图像转换为 WebP、AVIF 或 PNG。