图匣科普 · 约 5 分钟

为什么微信 / QQ 发图会"洗掉"隐藏文件?

图匣用户遇到提取失败,十有八九是这个原因:图片在传输路上被压缩或转码了,图匣会提示"非图匣文件,或图片被压缩 / 转码过"。这不是 bug,而是追加式隐写的天生短板——这篇把原理和对策一次讲清。

平台为什么要压缩你的图

很简单:省钱。一张手机原图三五 MB,每天几十亿张的量级,存原图、传原图的带宽和存储成本是天文数字。所以社交平台收到图片后,默认会缩小尺寸、降低画质、重编码,把几 MB 压到几百 KB。画质损失你肉眼难察觉,但文件已经被"重写"了一遍。

压缩如何杀死隐写数据

图匣把文件追加在图片结束标记(PNG 的 IEND、GIF 的 0x3B)之后。平台重编码时只认"图片本身",结束标记之后的东西会被当成垃圾直接丢弃;转成 JPG 的过程更会重写全部像素数据。结果就是:图片看着没变,藏的东西没了。

记住这个对应关系:凡是"看着更小了 / 画质变了"的图,里面的隐藏数据一定没了。反过来,文件大小分毫不差的原图,数据就是安全的。

怎么发送才能保住原图

以上是各平台的大致规律,平台策略随时会变(比如微信曾调整过原图逻辑)。最保险的办法:发完让对方先用图匣打开试提取,确认能取出再删源文件。

收到图,先做这两件事

打开图匣试试 → ← 上一篇:图片隐写术:把秘密藏进像素里

相关阅读:常见问题 · 使用介绍