资源中心

图像格式转换别乱来,这几个坑我帮你缕过了

做图像处理这行,格式转换看着挺简单,不就是把 A 换成 B 嘛。可真干起来你就会发现,图转完要么糊了、要么颜色变了、要么好好的照片突然冒出一堆色块。今天把我踩过的坑都捋一遍,全是干货,后面你要是也搞图片,省得再返工。

为什么转个格式,画质说没就没了?

先搞清楚最核心的问题:因为大多数常见格式用的是有损压缩,每压一次都在丢信息。你把 JPEG 再存成 JPEG,哪怕质量参数拉到满 100,照样会引入额外的损失。这个机制看不懂,后面全白搭。

重压缩的三个典型坑

坑一:代际损失

每次有损编码都会丢一点信息,JPEG→JPEG 就算参数不变,损失也是越攒越多。就像复印复印件,一代比一代糊。

坑二:格式之间算法不同

JPEG 用的是 DCT(离散余弦变换),WebP 是预测编码,算法都不一样,转换的时候根本没法完美映射,只能"解出来再重编一遍",这一来一回就是两次损失。

坑三:量化误差累积

每次量化都有舍入误差,转的次数多了,误差就肉眼可见了。

所以我的建议很直接:能拿原图(RAW、无损的 PNG/TIFF)就直接拿原图,千万别做有损→有损的套娃转换。实在非转不可,就把质量参数开到最高。如果手头格式不顺手,用站内的图片格式转换工具一步到位,别来回折腾。

完全不损失的路子:无损转换清单

那有没有完全不损失的路子?有。无损转换就是零损失通道,下面这几条随便走:

  • PNG → WebP(无损模式):像素一个不丢,文件反而更小。
  • PNG → AVIF(无损):同样零损失,压缩率也不差。
  • BMP → PNG:无损到无损,随便转。
  • 无压缩 TIFF → PNG:同上,放心转。

JPEG 的特殊无损操作

JPEG 有点特殊,它的无损旋转用 jpegtran 就能做,只重排 MCU 块,不用重新编码;沿 MCU 边界(一般 8 或 16 像素)裁剪也能无损搞定。

但注意了,JPEG→PNG 虽然是无损的,可 JPEG 已经丢掉的信息回不来了,文件还会大很多,别指望这一步"提升画质"。

我的工作流:原图当"母版"

我现在的经验是:工作流里尽早转成无损保存,最后输出的时候再转目标有损格式,原图留着当"母版"。中间不管改多少轮,都从母版出发,损失只发生一次。

有损转换:质量参数怎么设

说回有损转换,质量参数选对了,文件大小和画质的平衡就有了:

  • JPEG:Web 用 75-85,打印用 90-95,低于 70 就能看见明显的块状伪影。
  • WebP:q75 大概等于 JPEG 的 q85,视觉差不多但文件更小。
  • AVIF:质量参数是 1-63,数值越低质量越高,Web 推荐 30-40。CRF 23-32 是 Web 常见区间,但编码速度是真慢,是 JPEG 的 10-50 倍,不适合实时转。

别靠肉眼猜,用指标量化

质量好不好,别光靠肉眼猜,用指标量化一下:SSIM(0.95 以上基本看不出差别)、DSSIM(0.015 以下能接受)、Butteraugli(1.0 以下察觉不到)。想客观评价就用 ffmpeg 的 -lavfi ssim 或 Netflix 的 vmaf——SSIM 0.95 以上、VMAF 90 以上,绝大多数用户都看不出劣化。

自适应质量:细节多的多给,平坦的少给

Sharp 的 quality:"auto" 和 mozjpeg 的 -quant-table 2 能做自适应质量,细节多的区域给高质量,平坦区域多压点,同样的体积能换来更好的观感。

这些参数不用自己敲命令行折腾,站内的图片压缩工具已经把 Web 场景的常用档位调好了,拖进去就能压。

色彩空间:颜色为什么会偏

再一个容易翻车的是色彩空间。转换时 ICC 配置文件处理不对,颜色就偏了。

三种常见色彩空间

  • sRGB:Web 标准,浏览器默认就按它来。
  • Display P3:Apple 设备的广色域,比 sRGB 大 25%。
  • Adobe RGB:印刷常用,绿色区域比 sRGB 大。

色域映射与 RGB 值陷阱

从广色域转 sRGB 得做色域映射,超出去的颜色会被裁掉或压扁。更隐蔽的是:同一组 RGB 值(比如 R=200, G=50, B=50)在 sRGB 和 Adobe RGB 下显示出来其实是两个颜色,这个千万别搞混。

Web 上的统一做法

Web 上我一般统一转成 sRGB 然后移除 ICC——浏览器默认就是 sRGB,移了文件更小;只有需要广色域展示时才留 Display P3 配置文件。

元数据:最容易被忽略的一环

三种元数据各存什么

  • EXIF:拍摄参数和 GPS。
  • XMP:编辑历史和版权。
  • IPTC:标题、作者。

转换的时候这些说丢就丢。

各格式的支持情况

JPEG 这三种全支持;PNG 只原生支持 XMP;WebP 和 AVIF 支持 EXIF 和 XMP。选目标格式前先想清楚你要保留什么。

去留策略看用途

  • Web 发布:把 GPS 和个人信息删掉(隐私问题),版权信息要留。
  • 存档:全保留。
  • 社交媒体:平台基本会自动剥掉,你也不用操心。

想精准删,用 exiftool 只删 GPS、别的都不动:exiftool -gps:all= -overwrite_original image.jpg。Sharp 里用 .withMetadata() 保留,ImageMagick 只要别加 -strip 选项,元数据就都在。

常见问题

JPEG 转成 PNG,画质会变好吗?

不会。JPEG→PNG 虽然是无损转换,但 JPEG 编码时已经丢掉的信息回不来,文件反而会大很多。无损只保证转换过程零损失,不能还原历史损失。

网页用图,质量参数设多少合适?

JPEG 建议 75-85,打印用 90-95;WebP 的 q75 视觉上约等于 JPEG 的 q85 但文件更小;AVIF 质量 1-63、数值越低质量越高,Web 推荐 30-40。设完用 SSIM 或 VMAF 验证一下更稳。

为什么图片转完格式颜色就变了?

多半是 ICC 色彩配置文件处理不对。同一组 RGB 数值在不同色彩空间下是两种颜色,从 Display P3、Adobe RGB 这类广色域转 sRGB 时必须做色域映射,否则超出色域的颜色会被裁掉或压扁。

转格式时照片的 EXIF 拍摄信息会丢吗?

取决于目标格式和工具:JPEG 三种元数据全支持,PNG 只原生支持 XMP,WebP 和 AVIF 支持 EXIF 和 XMP。Web 发布建议删掉 GPS 和个人信息、保留版权,用 exiftool 可以精准删除。

总结

反正转换这事,记住一句话:能无损就无损,参数别乱调,颜色和元数据多留个心眼,基本就不会翻车。写这么多,也就是希望你别像我当初那样,辛辛苦苦压了半天图,最后发现全糊了,只能从头再来。

如果只是想把图片换成常用格式、压一压体积再发出去,不用装一堆软件,直接用 FreeConvertBox 的图片格式转换和图片压缩就够了,即开即用不留存,隐私安全有保障。要给照片配文档还可以接着用图片转 PDF,站内十几个免费工具随便接着用。

说明:部分素材由 AI 辅助生成。


免费转换器工具箱 图片格式转换、图片压缩