图片混淆 / 解混淆 /批处理

选择图片,点「混淆」或「解混淆」,结果就地替换图片区里的内容,随时可以用「还原」回到原图。

本地处理

选择图片,然后点「混淆」或「解混淆」

交互与原始工具完全一致:一个图片区,四个控件,结果就地替换。图片区里显示的永远是「当前这一张」,随时可以用「还原」回到载入时的状态。

点下面「选择图片」按钮开始 图片只在你的浏览器里处理,不会上传到任何服务器。也支持把图片拖进这块区域,或按 Ctrl + V 粘贴截图。
等待载入图片

算法参数

下列数值按当前载入的图片实时算出,可以用来核对处理行为是否符合预期。

状态
等待载入图片
进阶

批量处理

单张流程之外的可选模块。一次选择多张图片排队处理,按队列顺序逐张执行,完成后可打包成 ZIP 下载。批量不改变单张流程的任何行为。

尚未添加文件。

关于批量与画质:批量同样遵循「JPEG 有损、PNG 无损」的规则。如果批次里混合了不同来源的乱图,请先确认它们由同一套算法产生,否则无法用一个方向全部还原。

怎么用

四个控件分别做什么

选择图片

打开文件选择框。也可以把文件拖进图片区,或在页面任意位置按 Ctrl + V 粘贴剪贴板里的截图。载入后只显示原图,不会自动处理。

混淆

对当前显示的图片执行一次混淆,结果直接替换图片区里的内容。反复点击会沿曲线继续累加位移量,画面会更乱,但不会损坏文件。

解混淆

反向移动相同的距离,用来还原被打乱的图片。选错方向不会出错,只是结果看起来更乱,换成另一个按钮再点一次即可。

还原

把图片区恢复成你最初选择的那张图(若原图超出上限,则是等比缩放后的版本)。想反复对比处理前后,用它最直接。

参数速查

处理前值得知道的数字

下表数值来自本站实际运行的实现,不是估算。载入图片后,工具下方的「算法参数」会实时显示同样的指标。

常见分辨率下的位移量,k = round((√5 − 1) / 2 × N),N = W × H
分辨率像素数 N位移量 k循环个数 gcd(k, N)能否无损往返
800 × 600480 000296 65616PNG 链路可以
1280 × 720921 600569 58060PNG 链路可以
1920 × 10802 073 6001 281 555135PNG 链路可以
2048 × 15363 145 7281 944 1671PNG 链路可以
4000 × 300012 000 0007 416 40824超出上限,会先等比缩放

「循环个数」是一次长度为 N 的循环移位在数学上的自然结果:它会分解成 gcd(k, N) 个互不相交的循环。这个数字只影响实现细节,不影响可逆性——无论分成几个循环,解混淆都能把每个像素搬回原位。

使用边界

这个工具能做什么,不能做什么

它擅长的

  • 把用同一套方案混淆过的图片还原回可读状态
  • 在本地批量处理图片,不产生任何上传流量
  • 用无损格式做到混淆与解混淆之间的逐字节往返
  • 把一张图打乱后再分享,避免内容被直接读懂

它做不到的

  • 还原不是这套算法产生的乱图,例如被裁剪、旋转或二次截图后的图片
  • 把有损格式丢掉的高频信息找回来,JPEG 的损失不可逆
  • 充当加密工具:算法公开、没有密钥,任何人都能解混淆
  • 替代脱敏:混淆只移动像素,不删除任何信息
常见疑问

工具页的三个高频问题

为什么点完「混淆」以后图片看起来更乱了?

这通常说明方向选反了。混淆与解混淆是一对互逆操作:对已经混淆过的图片再执行一次混淆,等价于把位移量累加到 2k,画面依旧不可读。

判断方法很简单:如果处理前还能勉强看出轮廓、处理后再也看不出任何结构,方向就是错的。点「还原」回到载入时的状态,换成另一个按钮再试一次即可,文件本身不会损坏。

为什么处理四千万像素的相机原图会失败?

因为置换需要在内存里同时容纳曲线序(4N 字节)和输入输出像素(各 4N 字节)。四千万像素意味着单是置换就要占用约 480 MB,再加上画布的若干份副本,浏览器标签页很容易被系统回收。

因此本站把单张处理上限设为 800 万像素、单边 4000 像素,超出时先等比缩放到上限内再处理。缩放会改变像素值,所以这种情况下链路不再是无损的。

处理速度主要取决于什么?

置换本身是严格 O(N) 的单遍遍历,与图片内容无关,通常不是最慢的一环。真正耗时的是画布读取像素和最后的 JPEG 编码,尤其是编码阶段。

换成 PNG 输出时开销结构会变化:小图往往更快,而照片类大图因为 PNG 压缩率低,导出反而可能更慢、体积更大。想了解细节可以看 复杂度与性能。