KBSnap

压缩图片到 40KB

精确落在 40KB,而不是「差不多低于它」。文件不上传。

  • 不上传
  • 精确命中目标体积
  • 原生批量

拖入图片,或点击选择

JPG / PNG / WebP / HEIC · 单张最大 25MB · 支持批量

文件不上传服务器,全部在你的浏览器里完成。

目标体积表单的硬性上限
KB
精确命中关闭 = 尽量小
输出格式
剥离 EXIF / GPS

40KB 是硬门槛,不是建议值

写着「最大 40KB」的表单,会拒掉 41KB 的文件。多数压缩工具只承诺「已经压过」,于是用户提交、被拒、把质量滑块拉低、再试一次。这里做的是:在编码后的字节数 ≤ 40KB 的前提下搜索最高质量,然后把实际字节数直接报给你。

为什么偏偏是 40KB

40KB 是最尴尬的中间档:大到让人以为画质随便给,小到让一张满分辨率手机照依然塞不进去。用这个上限的奖学金、学校报名表单通常同时卡 640×480——两边都要满足,否则体积过了还会被像素规则打回来。

40KB 的限制通常从哪来

  • 考试报名与政务系统:身份证照片长期卡在 20–40KB
  • 高校报名系统:超过 50KB 直接提交失败
  • 手机卡实名与电子签门户:字段写死 30KB
  • 老旧 HR 系统:超限文件会被静默截断

如果表单同时规定了像素(例如 600×600),先定体积再看输出尺寸——两个条件有时会互相冲突。

40KB 能保住多少分辨率

在 JPEG 质量 70–80% 的常态下,体积预算可以直接换算成像素预算。下面这些尺寸都还能保持干净:

画幅尺寸典型用途
1:1350×350头像、2×2 证件照
3:2430×280相机默认、冲印
16:9460×260屏幕、幻灯片

这些数字是算出来的,不是抄来的:字节 ÷ 0.34 ≈ 可用像素。在 40KB 下超过这个尺寸,皮肤和文字就开始出现块状痕迹。

为什么压一次往往打不准

JPEG 的体积和质量不是线性关系:90% 降到 80% 可能直接减半,80% 到 70% 却只省 15%。只猜一次,要么超标,要么白白浪费 40KB 的空间。这里的做法是编码、量体积、收窄区间,直到输出落在限制的 2% 以内;如果最低质量仍然压不到目标,就改为降低像素尺寸,而不是交给你一张废图。

40KB 该导 JPG、WebP 还是 PNG?

同样的 40KB 下,WebP 的画质大约比 JPG 好 8–12%,还能保住透明通道——但少数老旧政务门户仍然拒收 .webp,先确认表单接受哪些类型。JPG 处理照片最稳:所有门户都认,代价是透明区域被铺白(或你选的底色)、细文字边缘发软。PNG 是无损格式,「40KB」根本不可能靠降质量达到——工具会改为降低像素尺寸,这对截图、logo、线稿是正确取舍,对照片通常不是。

隐私:文件从来没有离开这个标签页

整个过程不会发出上传请求。浏览器解码图片、在 worker 线程里重新编码,然后交给你一个下载用的 blob。你可以打开 DevTools → Network,拖进一张图,确认没有任何请求带着它出去。断网也能用。

常见问题

40KB 的图还清楚吗?
这个量级是在和物理规律较劲。30KB 的 JPEG 在可用画质下大约只有 9 万像素,所以只有同时降低像素尺寸结果才干净——工具会自动帮你做这件事。
40KB 还能保留透明背景吗?
可以,前提是输出格式选 WebP 或 PNG。导出 JPG 时透明区域默认铺白——运行前可以在设置里换成别的底色。
输出正好是 40KB 吗?
会等于或略低于 40KB,绝不会超。编码器在距目标约 2% 时停下,所以结果通常落在 39–40KB 之间。刻意留 1–2KB 余量,是为了避免卡在边界上的表单判你不合格。
能一次处理很多张吗?
一次最多 200 张,按 4 个并发(或你的 CPU 核数)处理。每个文件单独校验,失败可以单独重试,完成后可以打包成一个 ZIP 下载。
会清掉 EXIF 和 GPS 吗?
默认会。手机照片里带着拍摄地点、机型,有时还有原图缩略图——经过 canvas 重编码后全部消失。如果需要保留元数据,把开关关掉。

其它规格与工具