如果只记一句话:要还原,用 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 放进压缩包再发送,或使用网盘、邮件附件等不主动改写图片的渠道。接收后先确认尺寸和文件大小,再解混淆。
如何检查图片有没有被改
- 看尺寸。混淆后记录宽高;接收后对比。尺寸变了,基本可以放弃还原。
- 看格式与体积。PNG 变成 JPEG、体积大幅缩小,通常意味着转码或压缩。
- 做差值。把原图与还原结果放进图像软件,使用“差值”或“比较”功能。PNG 闭环应为 0;出现差异就继续查链路。
- 看块状纹理。如果还原结果出现规则的 8 × 8 块状纹理,优先怀疑 JPEG。
不要反复解混淆同一张已经受损的图。每次处理都不会“把丢失的像素找回来”,只会把当前像素再搬一次。先修复来源,再重试。
推荐流程
- 保留原始 PNG,不覆盖、不重命名成唯一副本。
- 混淆后下载 PNG,文件名保留
-hunxiao后缀,单独放一个目录。 - 需要分享时,从 PNG 另存一份 JPEG 作为展示副本;原 PNG 不要动。
- 需要解混淆时,始终使用那份 PNG,不要用聊天软件里保存回来的版本。
- 还原后与原图做一次差值比较,确认闭环无损。
这套流程看起来多了一步,但能避免大多数“不知道为什么还原不了”的情况。格式不是细节,它决定了可逆性能不能成立。