图片压缩工具

支持 PNG / JPEG / WebP 格式互转与压缩,质量调节(1-100)、等比缩放尺寸。 使用 Canvas API 在浏览器本地完成压缩,实时预览压缩前后效果与压缩比。 适用于博客图片优化、网页性能提升、邮件附件压缩、存储空间节省等场景。所有处理在浏览器本地完成,零上传、零追踪。

点击上传、拖拽图片到此处或按 Ctrl+V 粘贴
支持 PNG / JPEG / WebP / GIF,最大 20MB

常见问题

图片压缩的原理是什么?

本工具使用浏览器原生的 Canvas API 进行压缩:① 将图片绘制到 Canvas 画布; ② 调用 canvas.toBlob() 以目标格式(JPEG/WebP/PNG)和指定质量参数重新编码。 有损格式(JPEG/WebP)通过丢弃人眼不敏感的高频信息减小体积;无损格式(PNG)通过更高效的熵编码减小体积。 全程不依赖任何服务器,图片数据不会离开浏览器。

WebP、JPEG、PNG 三种格式应该怎么选?

WebP:体积最小,现代浏览器(Chrome/Edge/Firefox/Safari 14+)全支持,推荐用于网页图片。 JPEG:兼容性最好(含老旧设备),但不支持透明通道,适合照片类图片。 PNG:无损压缩,支持透明通道,适合图标、截图、需要透明背景的图片。 一般建议:照片类用 WebP 或 JPEG,图标/截图类用 PNG,追求极致体积用 WebP。

压缩质量参数(1-100)代表什么?

质量参数仅对有损格式(JPEG/WebP)生效,PNG 为无损格式不受影响。 数值越高质量越好、体积越大;数值越低体积越小、画质损失越明显。 推荐范围:80-90 适合网页展示(肉眼几乎无差异),60-80 适合追求极致体积, 90-100 适合需要较高保真度的场景。低于 50 可能出现明显的块状伪影。

为什么压缩后体积反而变大了?

两种常见情况:① 原图已是高压缩率格式(如已是 WebP),再次编码时编码开销可能超过压缩收益; ② 原图尺寸较小(如小于 10KB),文件头与元数据占比高,重新编码的固定开销可能超过压缩收益。 此时建议保持原格式,或尝试更低的压缩质量参数。

尺寸缩放(最大宽度/高度)如何工作?

设置最大宽度或最大高度后,图片会等比缩放到不超过该尺寸(不放大)。 两个限制同时存在时,取更严格的限制(即缩放后宽高均不超过对应上限)。 例如原图 4000×3000,设置最大宽度 1920、最大高度 1080,会先按宽度缩放到 1920×1440, 再按高度缩放到 1440×1080。留空表示不限制该维度。

JPEG 转换时透明区域会怎样处理?

JPEG 格式不支持透明通道(Alpha 通道)。当 PNG/WebP 等含透明区域的图片转换为 JPEG 时, 本工具会自动将透明区域填充为白色背景,避免出现黑色或乱码区域。 如果需要保留透明效果,请选择 WebP 或 PNG 输出格式。

支持 GIF 动图压缩吗?

支持 GIF 输入,但仅压缩首帧(Canvas API 的限制:drawImage 只绘制第一帧), 压缩后输出为静态图片(WebP/JPEG/PNG)。如需保留 GIF 动画效果,请使用专门的 GIF 处理工具。 本工具定位是静态图片压缩,动画 GIF 压缩不在支持范围内。

图片会上传到服务器吗?

不会。本工具完全在浏览器内运行,所有压缩处理由 Canvas API 在本地执行, 不会发送任何图片数据到服务器。使用 URL.createObjectURL() 创建本地预览 URL, 压缩结果也直接在内存中生成并下载。全程零网络请求,可离线使用。