在线工具

工具箱 › 图片 › 图片压缩

图片压缩到指定大小

在线把图片压缩到指定体积(默认 200KB)并保持原图尺寸,自动在目标体积内试出可用的最高画质。全程在浏览器内完成,图片不上传。

点击选图、拖进来,或直接 Ctrl/⌘ + V 粘贴 图片只在你的浏览器里处理,不会上传到任何服务器

报名系统卡在 200KB 时怎么操作

把照片拖进来(也可以直接 Ctrl/⌘+V 粘贴),在「目标体积」里填 200 —— 单位是 KB,可调范围 5 到 10240,步进 5。

输出格式选 WebP:同样的观感下它通常比 JPG 再小 25%–35%,绝大多数报名系统现在都收。对方只认 JPG 就选 JPG。

点「压缩」,结果区会直接写明「编码质量约 N%,命中 N KB」,同时给出原图体积、压缩后体积、省出百分比和输出尺寸。满意了再点下载,文件名是 compressed.webp 或 compressed.jpg。

质量不是猜的,是二分搜出来的

常见做法是让你自己拖质量滑块碰运气。这里改成在 0.3 到 0.95 之间二分搜索:每次取中间值编码一遍,看结果比目标大还是小,再收窄区间,直到区间小于 0.02 就停 —— 大约 5 到 6 次编码就能收敛。

代价是每次编码都要重新压一遍图,几百 KB 的图几乎是瞬时的,高像素原图会有明显的一两秒等待,这是二分搜索的固有成本。

为什么只有 JPG 和 WebP,没有 PNG

PNG 是无损格式,浏览器的 canvas.toBlob 对 image/png 会直接忽略 quality 参数 —— 「降低质量」这条路对 PNG 根本不存在,压到指定体积无从谈起。

要压 PNG,先转成 JPG 或 WebP 再压。需要保留透明通道只能选 WebP,JPG 不支持透明,透明区域会被铺成白底或黑底。

质量降到最低还是超标怎么办

勾着「超标时自动缩小尺寸」时,质量降到 0.3 仍然压不下去,就会按每轮乘 0.85 缩小长边,最多 8 轮(边长约降到原来的 27%),缩放用高质量重采样。

如果缩到宽度或高度不足 64 像素依旧超标,页面会如实告诉你「尺寸缩到很小仍然超标,换个更大的目标值或改用更小的原图」,不会硬塞一个超标的图给你。原图本来就小于目标时也会直说省不出体积 —— 这种时候不必再压。

身份证照片、合同扫描件也敢在这里压

解码、重绘、编码全在浏览器的 canvas 里完成,图片不经过任何服务器,页面上没有一处网络请求。证件照、合同、病历这些不方便外传的东西可以直接拖进来。

顺带一提:导出的是重绘后的像素,原文件里的 EXIF(拍摄时间、GPS、设备型号)不会跟着进新文件 —— 想先清一遍元数据再压,其实压缩这一步就已经清掉了。

能力边界

单张上限 40MB,一次只能处理一张,没有批量和打包下载;超过 40MB 会提示「浏览器处理不动」,请先用改尺寸工具缩小。

常见问题

目标填 200,压出来是刚好 200KB 吗?

是不超过 200KB 的最接近值。二分搜索在质量区间小于 0.02 时停止,最终落在目标以下一点点,不会超。

压完画质明显糊了,有救吗?

说明原图冗余不多或目标定得太狠。把目标放宽(比如 200KB 改 400KB),或改用 WebP —— 同体积下 WebP 的细节保留通常好于 JPG。

照片会被上传到服务器吗?

不会。全流程只有浏览器的 canvas 编码,没有任何网络请求;导出文件里的 EXIF 元数据也会被一并丢弃。