这个工具能做什么
本页运行的是双通道图片压缩器。预览上方的滑块是一个本地实时编码器,使用浏览器原生的 canvas.toBlob 接口,根据您选择的质量值即时编码。每次拖动滑块都会重新渲染分屏预览并更新字节计数器,完全不产生网络流量。点击下载时,原始文件会发送到我们的压缩服务,由 sharp 和 libvips 完成最终编码,与 Vercel 和 Shopify 使用的编码栈相同。输出尺寸与您的输入完全一致。工具支持 JPG、PNG、WebP 和 AVIF 的输入和输出,可任意组合。
上传 JPG、PNG、WebP 或 AVIF,拖动质量滑块即可实时预览,点击下载由 sharp 和 libvips 重新编码。
或将图片拖放到此处
正在压缩…
在浏览器中直接压缩 JPG、PNG、WebP 或 AVIF 图片,配有实时质量滑块和格式对比。将图片拖放到页面上后,预览会通过浏览器的 canvas 编码器立即更新,每次拖动滑块都在本地完成,不会发起网络请求。点击下载时,原始文件会通过 HTTPS 发送到我们的压缩服务,这是一个由 sharp 和 libvips 支持的 Cloudflare Worker,与 Vercel 和 Shopify 使用的编码栈相同。服务器端编码生成的文件通常比浏览器预览在相同质量下小 10 到 15 个百分点,因为 libvips 应用了浏览器无法匹配的 MozJPEG 调优。文件会在租户隔离的缓存中保留短暂时间,然后删除。服务器通道支持最大 25 MB 的文件。适合需要更小文件但不想切换软件或打开编辑器的摄影师、开发者和产品团队,也常用于满足微信 16 MB 的图片发送限制。
本页运行的是双通道图片压缩器。预览上方的滑块是一个本地实时编码器,使用浏览器原生的 canvas.toBlob 接口,根据您选择的质量值即时编码。每次拖动滑块都会重新渲染分屏预览并更新字节计数器,完全不产生网络流量。点击下载时,原始文件会发送到我们的压缩服务,由 sharp 和 libvips 完成最终编码,与 Vercel 和 Shopify 使用的编码栈相同。输出尺寸与您的输入完全一致。工具支持 JPG、PNG、WebP 和 AVIF 的输入和输出,可任意组合。
将 JPG、PNG、WebP 或 AVIF 拖放到上传区域,或使用 Ctrl+V 从剪贴板粘贴。从三个卡片中选择输出格式(照片默认选 WebP)。拖动质量滑块,观察字节计数器实时更新,当文件大小达到目标且预览看起来仍然合适时停止。点击下载即可获得服务器编码的结果。如果压缩服务无法访问,工具会自动保存浏览器编码的预览作为回退,确保您始终能获得一个可用的文件。
质量滑块范围为 1 到 100,有损压缩的默认值为 78。质量 80 相当于 Adobe Photoshop 导出 JPEG 时标注的「高」级别,适合作品集和客户交付。质量 60 是常见的网页默认值,可以将一张 4 MP 照片压到大约 200 到 400 KB,在正常观看距离下几乎看不出损失。低于 50 时,渐变和肤色区域会开始出现块状压缩噪点。低于 30 时,输出只能作为缩略图使用。滑块上方的字节计数器在拖动时显示精确的输出大小,不需要靠猜。PNG 模式下滑块控制的是调色板颜色数量,而非有损压缩强度。
工具会在同一张源图上并列显示 JPG、WebP 和 AVIF 的字节数,因此对比基于您的实际文件,而非通用基准测试。一般规律是,在相同视觉质量下,WebP 通常比 JPG 小 25 到 35 个百分点,AVIF 通常比 JPG 小 40 到 60 个百分点。AVIF 编码耗时较长,服务器通道上一张 8 MP 照片大约需要 3 到 8 秒,因为 libaom 计算量较大。2026 年这三种格式在 Chrome、Firefox、Safari 和 Edge 上的浏览器支持都已经很完善。PNG 适合颜色数量有限的图片,例如截图和 Logo,这种情况下调色板量化的效果优于有损编码器。
滑块预览完全不走网络。每次拖动都是浏览器内部一次全新的 canvas.toBlob 调用,可以在 DevTools 中过滤 Network 面板的 compress 关键字来验证,拖动滑块时不会出现任何请求。下载按钮是唯一会上传文件的步骤。您的文件会通过 HTTPS POST 到我们位于 /api/compress 的 Cloudflare Worker,Worker 再代理到运行 sharp 和 libvips 的后端。编码后的结果在响应体中返回并保存到您的下载目录。一份中间副本会在租户隔离的缓存中保留短暂时间,然后删除。如果服务无法访问或文件超过 25 MB,浏览器编码器会作为回退静默运行。
不调整尺寸,输出宽高等于输入宽高,如果同时需要缩小像素数,请先使用调整大小工具。不支持批量上传,一次只处理一张图片,这是有意为之。不保留 EXIF,元数据由 libvips 和 sharp 在编码层剥离,这对隐私是好事,但意味着嵌入的 GPS 和相机信息会丢失。视觉方向标签会在剥离前读取并应用,所以您的输出仍然是正面朝上的。不处理 GIF 动画,只处理第一帧。没有目标大小模式,但配合实时字节计数器,两三次滑块调整通常就能让任意目标在 10 个百分点以内命中。
将 JPG、PNG、WebP 或 AVIF 拖到上传区域,或点击浏览。您也可以使用 Ctrl+V 或 Cmd+V 从剪贴板粘贴。
点击 JPG、WebP 或 AVIF 设置输出格式。WebP 是默认值,通常是网页用照片的最小选择。
拖动滑块时观察字节计数器更新。当文件足够小且预览看起来仍然合适时停止。
原始文件会发送到我们的服务器,由 sharp + libvips 编码。最终文件通常比浏览器中显示的预览小 10 到 15 个百分点。
将图片拖到页面上,然后拖动质量滑块,直到计数器中显示的文件大小达到目标。点击下载即可获得服务器编码的结果(由 sharp + libvips 编码)。整个流程不到一分钟。下载按钮会触发一次 POST 请求到我们的压缩服务,如果服务无法访问,工具会自动保存浏览器编码的预览作为回退。
未优化的手机照片通常有 4 到 6 MB。在质量 78 下,同一张照片由 MozJPEG 重新编码后通常只有 800 KB 到 1.5 MB,足够小到可以作为电子邮件附件、微信发送或网页主视觉图使用,且没有明显的视觉损失。压缩后的图片也加载更快,有助于提升 Core Web Vitals 分数。微信单张图片上限为 16 MB,压缩后几乎所有手机原图都能顺利发送。
如果需要真正的无损压缩,请将输出格式选择为 PNG。PNG 通道使用 pnpngquant 进行调色板优化,可以将未优化的 PNG 缩小 30 到 50 个百分点,且视觉上完全没有差别。对于有损格式(JPG、WebP、AVIF),质量 80 是大多数观众无法分辨差异的实用门槛,具体效果取决于图片内容。
工具没有目标大小模式,但借助实时字节计数器,命中目标非常直接。向下拖动滑块,直到计数器显示您的目标值,然后点击下载。两三次滑块调整通常就能让任意目标大小在 10 个百分点以内命中。如果一次拖过头,稍微往回拖一点即可。
这取决于图片内容。工具会同时显示三种格式的字节数,方便您基于实际文件做对比。一般规律是:在相同视觉质量下,WebP 通常比 JPG 小 25 到 35 个百分点,AVIF 通常比 JPG 小 40 到 60 个百分点,不过 AVIF 的编码会多花几秒钟。
不会。输出尺寸与输入尺寸完全相同。压缩只改变字节编码,不改变像素数。如果同时需要降低分辨率(例如从 4000 像素宽缩到 1200 像素),请先使用调整大小工具,再压缩调整后的文件。这个顺序能得到最小的最终文件。
团队关于工艺、格式以及一个好的圆形裁剪背后小决定的笔记。