指南 · 格式

格式与画质:PNG、JPEG、WebP 怎么选

同样的算法,保存成 PNG 可以逐像素还原,保存成 JPEG 却可能出现色差。问题不在混淆,而在格式有没有改写像素。这一页把三种常见格式放回“要不要还原”这个真实问题里比较。

PNG 无损 JPEG 有损 WebP 看模式

如果只记一句话:要还原,用 PNG;只看一眼,可以用 JPEG。其余选择都从这个前提推导出来。下面的解释会比结论长一些,因为“为什么”决定了你在遇到色差时该怪谁、该改哪一步。

结论表

格式是否有损适合注意
PNG无损需要解混淆、需要保留透明、需要逐像素核对文件更大,混淆图尤其明显
JPEG有损聊天展示、社交平台预览、体积优先会改写像素,不适合作为还原底稿
WebP可无损,也可有损现代浏览器内展示,追求更小体积兼容性因设备和软件而异
GIF有限色动图当前帧的临时查看颜色表最多 256 色,不适合还原

为什么格式会破坏还原

像素置换只做一件事:把颜色值从一个坐标搬到另一个坐标。它默认“搬过去的值”和“搬回来的值”完全一样。只要中间有任何一步改写了像素值,逆向搬运就会把“被改写的值”送回原位,画面结构可能回来,颜色却回不到最初。

有损压缩的目标是“让人眼看起来差不多”,不是“让每个字节保持一致”。这两个目标在普通照片上可以共存,在混淆图上却会放大差异:混淆图本身充满高频细节,正是有损编码最容易丢信息的地方。

PNG:还原场景的默认选择

PNG 使用无损压缩,解码后得到的 RGB 或 RGBA 值与编码前一致。它支持透明通道,适合截图、图标、带 alpha 的设计稿。对本工具来说,PNG 意味着“混淆后下载,再载入解混淆”这条链路不会因为保存格式本身引入误差。

代价是体积。混淆图的高频细节很难被压缩,一张 4000 × 3000 的照片转成混淆 PNG,可能有十几 MB 甚至更大。这是正常的:你保存的是完整像素,不是“看起来差不多”的近似值。

JPEG:方便展示,但不适合当底稿

JPEG 会把图像分成 8 × 8 的块,做离散余弦变换和量化,再对色度做子采样。量化会丢掉高频信息,色度子采样会降低颜色分辨率。对普通照片,这些损失往往不明显;对混淆后的图,损失会直接变成色差和块状纹理。

即使把质量拉到 100,JPEG 仍然是有损的,只是损失更小。所以“我用了最高质量”不等于“像素没变”。如果图片之后要解混淆,请保留 PNG 原文件,JPEG 只作为展示副本。

WebP:能力更全,兼容性要看对象

WebP 同时支持有损和无损模式,也支持透明通道。无损 WebP 在不少图像上比 PNG 更小,浏览器支持也已经很普遍。但它不是所有场景都稳:一些老版本办公软件、图片查看器和聊天工具可能无法打开,或者会在导入时自动转码。

如果图片只在现代浏览器里展示,WebP 是不错的选择;如果要发给不确定设备环境的对象,PNG 更省心。本站当前下载提供 PNG 与 JPEG 两种格式,覆盖“还原”和“展示”两个主要需求。

透明通道:JPEG 会填白底

带透明背景的 PNG 或 WebP 经过 JPEG 保存时,透明区域会被填成白色(取决于编码器),alpha 信息直接丢失。即使之后解混淆,透明区域也回不来。

需要保留透明背景时,务必选择 PNG。处理前也要确认原图确实带 alpha,而不是在白底上画了一个“看起来透明”的图案。

另外,浏览器 Canvas 对半透明像素会做预乘 alpha 的往返转换,部分半透明颜色的 RGB 值可能出现 ±1 的舍入差;完全不透明的像素不受影响。alpha 通道本身会被保留。

微信、QQ 的二次压缩

这是最常见的“还原失败”来源。你发送时选择了“原图”,不代表接收方保存下来的文件一定和发送时一致;不同版本、不同入口、不同网络状态都可能触发转码或缩放。群聊、朋友圈、文件传输助手的行为也不完全相同。

如果图片需要经过聊天软件,建议把 PNG 放进压缩包再发送,或使用网盘、邮件附件等不主动改写图片的渠道。接收后先确认尺寸和文件大小,再解混淆。

如何检查图片有没有被改

  1. 看尺寸。混淆后记录宽高;接收后对比。尺寸变了,基本可以放弃还原。
  2. 看格式与体积。PNG 变成 JPEG、体积大幅缩小,通常意味着转码或压缩。
  3. 做差值。把原图与还原结果放进图像软件,使用“差值”或“比较”功能。PNG 闭环应为 0;出现差异就继续查链路。
  4. 看块状纹理。如果还原结果出现规则的 8 × 8 块状纹理,优先怀疑 JPEG。

不要反复解混淆同一张已经受损的图。每次处理都不会“把丢失的像素找回来”,只会把当前像素再搬一次。先修复来源,再重试。

推荐流程

  1. 保留原始 PNG,不覆盖、不重命名成唯一副本。
  2. 混淆后下载 PNG,文件名保留 -hunxiao 后缀,单独放一个目录。
  3. 需要分享时,从 PNG 另存一份 JPEG 作为展示副本;原 PNG 不要动。
  4. 需要解混淆时,始终使用那份 PNG,不要用聊天软件里保存回来的版本。
  5. 还原后与原图做一次差值比较,确认闭环无损。

这套流程看起来多了一步,但能避免大多数“不知道为什么还原不了”的情况。格式不是细节,它决定了可逆性能不能成立。

保存 PNG,少一半麻烦

如果这张图之后还要还原,就把 PNG 当成底稿。JPEG 留给展示,不要留给未来。