把图片拖到这里
JPEG / PNG / WebP / GIF / BMP · 单文件 ≤ 50 MB · 单批 ≤ 50 张
或从剪贴板粘贴
尚未添加文件。拖入或粘贴图片开始。
为什么需要不上传的图片压缩器?
市面上多数免费在线压缩器把你的图片 POST 到服务器处理。这意味着产品截图、家庭照片、未发布的设计稿、随手拍的票据全都经过别人的机房。即便服务声称「自动删除」,缓存、请求日志、崩溃 dump 仍可能留存副本。本工具一字节都不发出。Canvas API 在浏览器内完成解码与重编码,你可以打开网络面板,整个压缩过程零请求。无论是设计师在改稿,还是个人在准备保险理赔的照片,隐私模型都很简单:文件不离开你的设备。
浏览器端压缩的原理?
现代浏览器已经内置完整的图像流水线:createImageBitmap 解码 JPEG / PNG / WebP / GIF / BMP,canvas 重绘像素,canvas.toBlob 用原生 JPEG / PNG / WebP / AVIF 编码器重新编码。我们在此之上加了目标体积搜索、多格式输出与元数据剥离。常见照片下输出质量与 mozjpeg / oxipng 仅相差几个百分点,对网络场景足够,且 bundle 体积保持极小。我们刻意没引入 WebAssembly 编码器,让本页新增 JS 控制在 12 KB 以内,弱网下也能秒开。
应该选哪种输出格式?
对于摄影类内容(相机照片、手机拍照),相同视觉质量下 AVIF 体积最小,其次 WebP,再次 JPEG。当你能控制查看端(现代浏览器、自己的 App)时优先 AVIF;不能控制时(邮件附件、老旧系统)选 JPEG。对于 UI 截图、矢量风格、Logo、任何带有锐边或透明区域的图,请选 PNG —— JPEG 与 WebP-lossy 会把锐边糊掉。GIF 动图本工具只取首帧,动图请使用专门的 GIF / WebM 转换器。多格式输出允许你勾选多个,用真实体积侧栏比较,而不是凭感觉选。
目标体积模式如何工作?
告诉工具「我需要 200 KB 以内」,它会在 quality 0–100 区间做二分搜索。每一步用中点重编码、检查 blob 大小,再根据结果向上或向下收缩区间。最多 10 次迭代后收敛到能满足体积约束的最高 quality。若 quality 0 仍超出目标(极高分辨率全景图偶有),UI 会明确提示并建议先缩放图像 —— 维度收缩通常能在视觉无明显损失的前提下解锁体积预算。
为什么需要剥离 EXIF?
手机与相机产出的 JPEG 携带隐藏的 EXIF 块:拍摄时间、相机品牌型号 / 序列号、镜头、曝光参数,最关键的是开启定位时的 GPS 经纬度。截图工具产出的 PNG 同样有 tEXt / tIME chunk。多数社交与即时通讯不显示这些元数据,用户以为已经清掉 —— 实际上字节随图片一起走,文件被下载、归档、抓取时再次浮出。本工具默认剥离:Canvas 重编码不会保留原始元数据块,开关默认勾选,意味着你不用每次思考也不会意外公开自己的家庭住址。
FAQ
- 我的图片会被上传吗?
- 不会。浏览器 Canvas API 在你的设备上完成解码与重编码。打开网络面板观察 —— 压缩过程零请求。唯一的网络访问只发生在加载本页。
- 为什么我的浏览器里 AVIF 选项被禁用?
- AVIF 编码需要 Chromium 100+、Safari 16.4+ 或 Firefox 113+。我们在加载时进行特性检测,浏览器无法编码 AVIF 时禁用复选框。但 JPEG、PNG、WebP 仍可使用 —— 这些是通用支持的格式。
- 目标体积模式如何找到合适的 quality?
- 我们在 quality 0–100 区间做二分搜索,每张图最多 10 次重编码。约 10 次后收敛到「输出 ≤ 目标体积」的最高 quality。若 quality 0 仍超出目标(极高分辨率图像偶有),建议先缩小尺寸。
- 为什么 PNG 压缩后几乎没变小?
- PNG 是无损格式 —— 重编码仅在源文件编码效率低时才能节省空间。对摄影类内容追求真实体积削减,请改用 JPEG 或 WebP;对透明、锐边重要的 UI 截图与矢量风格,PNG 才是正确选择,但体积变化会很小。
- 为什么不能拖入 HEIC 文件?
- HEIC / HEIF 是 Apple 专有格式。浏览器无法解码,引入 WebAssembly 库会让本页增加 ~2 MB 并违背零依赖策略。在 macOS / iOS 上,请先在「照片」中导出为 JPEG。

