图片压缩到指定大小

JPG / PNG / WebP 互转 + 按目标 KB 压缩 · 浏览器本地处理 · 图片不上传

拖拽图片到此处

或点击选择文件,也可 Ctrl+V 粘贴

支持 JPG / PNG / WebP / GIF,单次最多 20 张,单个文件 ≤ 20 MB

会二分搜索编码参数,让输出刚好低于这个值。

含文字的截图/文档会自动识别并保清晰度:尺寸最多缩到 75%、质量不低于 0.72, 到线就停并告诉你"可读前提下的较小体积"。

📖 使用说明

  1. 把图片拖进上传区,或点击选择文件;支持 JPG、PNG、WebP、GIF,单次最多 20 张。
  2. 目标大小会按图片实测出的推荐值自动填入,直接开始即可;也可以改成你要的具体限制 (100KB / 200KB / 500KB / 1MB 这类常见值可点快捷按钮)。
  3. 按需选择输出格式与最大宽高,然后点击"开始压缩"。
  4. 压缩完成后,单张会给出可拖动的压缩前后对比;多张会列出每一张的体积变化, 并可打包成 ZIP 一次性下载。

🔍 压缩是怎么做到的

  • 有损格式(JPG / WebP):把图片绘制到 Canvas 上,先二分搜索编码质量, 质量压到下限还超标,就继续二分搜索缩放比例;缩放后如果体积还有富余,再回补一点质量。
  • 无损格式(PNG):PNG 没有质量参数,只能通过缩小像素尺寸来减小体积, 因此 PNGC 的压缩效果通常不如 WebP。
  • 原图已达标时不重复编码:如果不需要转格式、不需要改尺寸,而原图体积已经在目标以内, 工具会直接复用原文件,避免白白损失一次画质。
  • 透明通道:输出为 JPG 时会先铺白色底,避免透明区域变成黑块。
  • GIF:取第一帧处理,动图会变成静态图。

❓ 常见问题

Q:图片会被上传吗?

A:不会。整个流程走浏览器的 Canvas API,在本地完成解码、缩放和重新编码, 页面没有任何上传接口。

Q:为什么 PNG 压不到目标大小?

A:PNG 是无损压缩,没有"质量"这个可调参数,体积主要由像素数量决定。 如果目标值远低于原图,工具会缩小尺寸来逼近,但可能仍达不到。 这类场景建议输出为 WebP,通常能显著减小体积。

Q:目标 10KB 以下可以吗?

A:可以尝试,但页面会提示目标过小、可能严重失真。实际效果取决于原图内容与小尺寸下的可读性。

Q:批量处理会不会很慢?

A:图片按顺序逐张处理,避免同时解码大量图片把内存打满。20 张普通手机照片通常在几秒内完成。

Q:ZIP 包里的文件会不会重名覆盖?

A:不会。重名文件会自动加上 -2、-3 之类的后缀,避免解压时互相覆盖。