CompressSnap
在浏览器里压缩 JPEG、PNG、WebP、AVIF 和 HEIC —— 按你选的画质,或按你必须达到的体积 —— 并且看清代价是多少。
把图片拖到这里,或点击选择
支持 JPEG、PNG、WebP、AVIF、GIF、BMP、TIFF 和 iPhone 的 HEIC。超大图会被限制到浏览器画布装得下的范围。
这个浏览器写不了 AVIF,所以不提供。
画质越低,文件越小。实测的损失会显示在每个结果上。
怎么用
把照片放进来
粘贴、选择或拖拽。它们只是排进队列 —— 你不按按钮就不会编码,所以四十张的文件夹不会卡住标签页。
选好取舍
一个画质、一个不能超过的 KB 数、一个格式、一个长边上限。PNG 得到的是调色板,而不是画质滑块。
让它跑
编码在主线程之外进行,所以队列推进时页面照样能响应。
把文件带走
一张张下载、打包成 ZIP,或者不下载直接送进下一个工具。
在主线程之外编码
由带 OffscreenCanvas 的 Web Worker 干活,位图是转移而不是复制,所以一批手机照片不会再冻住它所在的标签页。
压到体积,而不是靠猜
给它一个 KB 上限,它就用二分法搜索画质直到文件装得下,然后告诉你最终定在哪个画质、试了几次。
损失是个数字
每个结果都会被解码回来,用 SSIM 与源图比较,于是「画质 70」不再是感觉,而是文件体积旁边的 0.981。
真的会瘦的 PNG
median-cut 调色板削减,可选抖动。这是 PNG 唯一的旋钮(画质参数会被任何编码器忽略),在截图、标志和纯色图形上确实有效。存成 PNG 的照片更适合转成 JPEG 或 WebP,工具会这么告诉你,而不是丢回一个更大的文件。
你手上真有的那些格式
iPhone 的 HEIC 和 TIFF 在输入时转换,AVIF 和 WebP 在浏览器支持时用于输出,EXIF 里的旋转会被应用,免得图片躺着出来。
什么都不出这个标签页
解码、编码、调色板和测量全在你的浏览器里运行。没有 API,不用上传,不用账号。
会告诉你压缩代价的图片压缩工具
CompressSnap 能读 JPEG、PNG、WebP、AVIF、GIF、BMP、TIFF 以及 iPhone 产出的 HEIC,并写回 JPEG、PNG、WebP 和 AVIF。它通过搜索合适的画质来满足字节上限,靠削减调色板让 PNG 变小 —— 而不是假装画质滑块在那里起作用 —— 并把每个结果与源图对比,让你做出的取舍看得见。
实测,不是估计
每个压缩后的文件都会被重新解码,与输入做比较。这个数字是 SSIM —— 追踪人们真正察觉到的差异的那把尺子 —— 它就摆在文件体积旁边,好让两者互相权衡。
为什么要压缩图片?
刚从 iPhone 里出来的 HEIC、旋转信息藏在 EXIF 标签里的竖拍照片、过一遍 JPEG 反而变大的 PNG 截图、装不进画布的 4800 万像素画面 —— 这些都是常态,每一种都会被转换、旋转、标记或限制,而不是悄悄失败。
这个页面背后没有任何 API。解码器、编码器、调色板削减和画质测量都是跑在你标签页里的 JavaScript,所以尚未发布的客户照片不会离开你的电脑。
常见问题解答
Q我的数据会发到服务器吗?+
不会。解码、编码、调色板削减和画质测量都在你的浏览器里运行。在这里打开的图片不会离开这个标签页。
Q为什么压缩 PNG 没反应?+
因为 PNG 是无损的,所有编码器都会忽略画质参数 —— 像以前那样给 PNG 显示画质滑块是有误导性的。让它变小的是减少颜色数,所以 PNG 得到的是调色板控制。在截图、标志和纯色插画上,降到 64 或 128 色看不出来,而且常常能把文件减半。
Q能压到指定体积吗?+
能。打开体积上限,填一个 KB 数,编码器就会用二分法搜索画质直到文件装得下,最多八次尝试。每个结果都会显示最终的画质和用了几次编码。
QSSIM 是什么,我为什么要在意?+
结构相似性:一个 0 到 1 的数字,表示压缩后的图片和原图有多接近,权重按人眼的方式来分配。它是把结果解码回来逐像素比较得出的。高于 0.98 几乎没人看得出差别;低于 0.95 瑕疵就开始显现。它把「画质 70 看着还行吗?」变成屏幕上能读到的东西。
Q它接受我 iPhone 拍的照片吗?+
接受。HEIC 和 HEIF 在输入时转换,TIFF 也一样,而且 iPhone 存在 EXIF 标签里的旋转会被应用,竖拍照片不会躺着出来。旧版在文件选择器那一步就把 HEIC 拒之门外了。
Q为什么有一张图原样返回了?+
因为压缩会让它变大。这在高画质 JPEG 处理过的截图和纯色图形上最常见。与其给你一个更差的文件,工具会标记出来并保留原图。
QEXIF 数据会被移除吗?+
会 —— 通过画布重新编码会丢掉所有元数据块,包括 GPS 坐标和相机信息。唯一在视觉上有意义的那一项,也就是方向标签,会先应用到像素上,让图片保持正确朝向。
Q大批量会卡住页面吗?+
不会。编码跑在带 OffscreenCanvas 的 Web Worker 里,图像数据是转移而不是复制,所以队列推进时页面照样能响应。一次编码两张,既快又不用同时把好几张全分辨率画面留在内存里。