先统一尺寸,再统一处理
同一批图片如果混着手机原图、聊天截图和网页缩略图,处理时间会差很多。可以先把它们缩到相近的长边,再一起加入队列。
BATCH / 队列
当需要处理的不是一张图,而是一整组截图、一套素材或一批活动图片时,逐张上传会很浪费时间。这个页面把文件排成队列,按顺序一张张完成,结果分别保存,所有计算仍然只发生在当前浏览器里。
也可以点击选择文件,单次最多 12 张。队列会逐张处理,处理完一张再开始下一张。
选择图片所有运算仍在当前浏览器内完成,图片不会上传。
队列还是空的。加入图片后,这里会显示每一张的处理状态。
How the queue works
图片重排是计算密集任务。队列通过串行处理,把峰值内存压到一次只处理一张图的水平。
批量页不是“一次把所有图片塞进画布”,而是维护一个待处理列表:先把文件排进队列, 再按顺序读取、重排、导出。每张图完成后,结果以 Blob 形式留在内存里, 你可以逐张下载,也可以最后统一下载。
这样做的好处是内存曲线平稳。十张 800 万像素的图片如果同时处理, 浏览器需要同时保存十份源像素、目标像素和曲线坐标,很容易触发移动端的内存限制; 串行处理则始终只有一张图处于计算状态。
代价是总耗时更长。处理期间请保持页面在前台,不要锁屏;移动端浏览器在后台可能被系统挂起, 导致任务停在半途。如果队列中途卡住,点“停止”,等当前这张结束后再重新加入即可。
混淆结果保存为“原文件名-混淆.jpg/.png”,解混淆结果保存为“原文件名-解混淆.jpg/.png”。如果原文件没有扩展名,会以“image”作为基础名。同名文件重复处理会覆盖浏览器里的临时结果,但不会修改磁盘上的原文件。
Practical notes
这些建议来自实际使用中最容易出问题的环节,和具体算法无关,但对结果影响很大。
同一批图片如果混着手机原图、聊天截图和网页缩略图,处理时间会差很多。可以先把它们缩到相近的长边,再一起加入队列。
如果这批图后面还要解混淆、再重新混淆,建议输出 PNG。JPG 的每次压缩都会留下痕迹,多次往返后画质会下降。
结果只保存在当前标签页的内存里。刷新、关闭或崩溃都会让结果消失,磁盘上的原文件不会受影响,但需要重新跑一遍。
限制数量不是为了设置门槛,而是给内存留余量。超过十二张时分两批加入,比一次全塞进去更不容易失败。
Batch FAQ
不会。所谓“队列”只是当前页面里的一个 JavaScript 数组,按顺序调用同一个本地处理函数。没有服务器任务,也没有等待队列。关闭页面,队列就消失了。
单次上限是 12 张,超出部分会被忽略。可以先把前 12 张处理完、下载并清空,再加入下一批。重复文件(文件名和体积都相同)也会被自动跳过。
部分浏览器会拦截连续触发的多个下载,尤其是第一次使用时。请允许本站下载多个文件,或改为逐张点击“下载”。Safari 与部分手机浏览器对连续下载的限制更严格。
不建议。一次运行只使用一个方向,避免把方向弄混。需要混合处理时,先跑完一批混淆、下载并清空,再加入需要还原的图片,选择“全部解混淆”。