JPG 文件:那套压缩到底做了什么
JPEG 如何丢弃细节、为什么反复保存会劣化、什么时候该选 PNG 或 WebP。在浏览器里转换 JPG,不上传。
速览
- 类型
- 图片
- 压缩
- 有损
- 扩展名
- .jpg, .jpeg
- MIME 类型
- image/jpeg
- 别称
- JPEG
JPEG 于 1992 年标准化,它把图像切成 8×8 的小块,再把每一块从「像素」变换成「频率」。高频成分——相邻像素之间的突变——会最先被量化掉,因为人眼对它们最不敏感。这一个设计决定解释了这个格式的一切:它在照片上表现极佳,因为照片的细节变化平滑;而在文字和线稿上明显糟糕,因为它丢掉的那些突变恰恰就是全部内容。
展开说明
这也解释了代际损失。每次保存都是对一份已经被量化过的图像再量化一次,于是痕迹叠加:硬边缘周围淡淡的振铃变强,平坦区域长出斑驳的块状纹理——那是「反复保存过」的标记。编辑一张 JPG 再反复保存,是人们悄悄毁掉自己照片的最常见方式。如果你要跨多次会话处理一张图,请先转成 PNG。
JPEG 没有 alpha 通道,所以透明不只是「不支持」——而是根本没有地方放。任何转入 JPG 的操作都必须决定透明像素变成什么,本站把它们填成白色:对浅色页面上的照片是对的,对 logo 就是错的。它在通常用法下也是每通道 8 位,这就是为什么 JPG 里的渐变有时会出现色带,而 16 位的源文件没有。
关于命名:.jpg 和 .jpeg 是同一个格式,三个字母的版本是 MS-DOS 文件名长度限制留下来的。JPG 文件之间真正有差别的是元数据外壳——JFIF、EXIF,或者两者都有——它携带相机设置、方向,还经常带 GPS 坐标。本站的图片处理经过浏览器 canvas,会把这些全部丢弃:这是隐私上的好处,但也意味着方向标签是被应用到像素上而不是被保留。
把 JPG 转成其他格式
把其他格式转成 JPG
JPG常见问题
质量该选多少?
默认 82,对照片是个好平衡——观感接近原图,体积只有一小部分。截图和含文字的图片受影响更明显,这类请用 90 以上,或者干脆保持 PNG。
反复保存 JPG 会让它变差吗?
会,每一次都会。每次保存都是对已量化的数据再量化,于是边缘的振铃变强、平坦区域变斑驳。请始终从原图重新编码,而不是从上一个 JPG 转。
JPG、PNG 还是 WebP,该选哪个?
兼容性最重要的照片选 JPG。文字、截图、图表以及任何需要透明的内容选 PNG。做网页选 WebP——在观感相同的前提下比 JPG 小 25%–30%,而且也支持透明。
为什么我的 JPG 看起来有块状?
因为质量设置太低,或者它被反复保存过。JPEG 以 8×8 的块为单位工作,当描述这些块的比特太少时,块的边界就会显现出来。
我的透明背景怎么没了?
变成白色了。JPEG 完全没有 alpha 通道,无法表示透明。需要保留就转 PNG 或 WebP。
.jpg 和 .jpeg 有区别吗?
没有,是同一个格式。三个字母的扩展名是 MS-DOS 文件名限制的遗留。本站两者都收。
EXIF 和 GPS 信息会保留吗?
不会。本站的图片转换经过浏览器 canvas,而它不携带元数据,所以相机信息和位置会被清除。方向会被应用到像素上,而不是作为标签保留。
在这里转 JPG 会上传吗?
不会。你的浏览器本来就带 JPEG 编解码器,所以工作在页面内完成,没有东西要下载,你的图片也不会被发送到任何地方。这是本站最快的一类转换。