图片压缩到指定大小
JPG / PNG / WebP 互转 + 按目标 KB 压缩 · 浏览器本地处理 · 图片不上传
拖拽图片到此处
或点击选择文件,也可 Ctrl+V 粘贴
支持 JPG / PNG / WebP / GIF,单次最多 20 张,单个文件 ≤ 20 MB
📖 使用说明
- 把图片拖进上传区,或点击选择文件;支持 JPG、PNG、WebP、GIF,单次最多 20 张。
- 目标大小会按图片实测出的推荐值自动填入,直接开始即可;也可以改成你要的具体限制 (100KB / 200KB / 500KB / 1MB 这类常见值可点快捷按钮)。
- 按需选择输出格式与最大宽高,然后点击"开始压缩"。
- 压缩完成后,单张会给出可拖动的压缩前后对比;多张会列出每一张的体积变化, 并可打包成 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 之类的后缀,避免解压时互相覆盖。