免费在线图像压缩器

将 JPEG、PNG 和 WebP 图像压缩至最多小 80%。 即时获得结果,不会上传到任何服务器。

您的文件永不离开您的设备
将图像拖放到此处 或点击浏览

支持 JPEG、PNG、WebP · 每个最多 50 MB

设置
60%

工作原理

  1. 在上方选择或拖放一张或多张图像。
  2. 调整质量滑块(值越低,文件越小,压缩率越高)。
  3. 图像在您的浏览器中进行压缩 · 不会上传任何内容。
  4. 单独或一次性下载压缩后的图像。

为什么要压缩图像?

大图像会拖慢网站速度,增加跳出率,并影响 Google 搜索排名。 压缩图像可将文件大小减少 50-80%,几乎看不出质量损失。 这对网页开发者、博主、电商店主以及任何在线发布内容的人都至关重要。 较小的图像还能节省移动设备的带宽,并改善 Core Web Vitals 评分。

「图像压缩」到底意味着什么

图像压缩涵盖两种本质不同却共用一个名字的操作。有损压缩由 JPEG 和有损 WebP 使用,丢弃人眼不太可能察觉的图像数据(阴影中细微的灰阶过渡、高频噪声、利用人眼对色度与亮度感知差异的色度子采样)。输出比输入小,但无法逐位重建。无损压缩由 PNG、GIF、TIFF-LZW 和无损 WebP 使用,使用 DEFLATE(LZ77 + 哈夫曼)等算法把精确的像素数据编码得更紧凑。输出更小,解压时能按字节重现原始数据。哪种合适取决于图像:照片极其适合有损,因为其内容充满纹理,眼睛无法在像素层面追踪;徽标、截图和具有锐利颜色过渡的图形则要求无损,因为每一个像素都是有意为之。

JPEG 压缩器中的质量设置(本工具上的滑块,从 10 到 100%)控制的是 DCT 步骤之后应用的量化表。质量为 100 时,量化表几乎不对任何频率系数取整;质量为 50 时,它们会很激进地取整。质量更高意味着文件更大、细节更精;质量更低意味着文件更小、平面区域出现可见的块状伪影。默认的 60% 处于网页用途的甜蜜点:通常文件大小可减少 50 到 80%,在典型屏幕上看不出变化。打印或大屏工作可推到 80-90%。缩略图或邮件友好版本则 30-50% 就够。

对于 PNG,「质量」滑块在通常意义上并不适用,因为 PNG 一直是无损的。本工具对 PNG 输入实际做的事情,是跑一遍比大多数创作软件(Photoshop、Affinity、Sketch)默认使用的更强的 DEFLATE 压缩;这通常能在不改变任何像素的情况下榨出 5 到 25% 的文件体积。Format 下拉框还允许把 PNG 转换为 JPEG 或 WebP,这用无损换得了更小的文件,但 JPEG 输出会失去透明度,而 WebP(对于照片内容)会失去无损保证。Max Width 选项在压缩过程中调整图像尺寸:一张 4000 像素宽的照片缩小到 1920 像素,原始像素数节省了 75%,这一步发生在任何压缩之前,并能与质量降低叠加。

这个工具的底层原理

压缩引擎是 Donald Wong(GitHub:Donaldcwl/browser-image-compression,MIT 许可证)的 browser-image-compression。这是一个纯 JavaScript 库,压缩后约 95 KB,封装了浏览器的三种原语:用于读取字节的 File API,用于解码、调整大小和重新编码 JPEG/WebP 图像的 Canvas API(或在可用时的 OffscreenCanvas),以及用于处理 PNG 而不经过 Canvas 的 UZIP(一个小型 DEFLATE 库)。当你拖入图像时,浏览器把字节交给这个库;库会根据输入格式和请求的输出选择路径。

对于 JPEG 和 WebP 输入,路径是:解码到画布、按需调整到所配置的最大宽度,然后调用 canvas.toBlob(mimeType, 质量/100)。浏览器内置的 JPEG 或 WebP 编码器执行真正的量化和哈夫曼编码。质量是你的滑块值除以 100,作为第二个参数传入。对于保持为 PNG 的 PNG 输入,库完全跳过 Canvas(经由 Canvas 会无意义地重新栅格化无损数据),转而直接对 PNG 文件的 IDAT 块运行 UZIP,并采取最大压缩力度。这就是为什么 PNG 到 PNG 的压缩在这里真正无损:像素数据从未被解码和重新编码,只是 DEFLATE 外壳被拧得更紧。

当 OffscreenCanvas 受支持时(现代的 Chrome、Edge、Safari、Firefox),繁重的解码-调整-编码工作运行在 Web Worker 内,使主界面线程保持响应。你可以拖入 20 张照片的批次,并在每一张被处理时继续滚动页面。在较旧的浏览器上,库回退到主线程,仍能工作,但会在大任务期间阻塞页面。整条管线在你的标签页内运行。库在首次访问时从 CDN 加载一次(压缩后约 95 KB),之后被缓存。文件内容永远不会离开浏览器。在压缩一个批次时打开开发者工具的网络标签,你会看到一次性的库获取,但此外什么都没有。

图像压缩格式简史

支持的格式

现实世界中的压缩工作流

常见陷阱及其含义

隐私:图像留在你的设备上

每一个云端图像压缩器(TinyPNG、Compressor.io、Optimizilla、Smallpdf 的图像工具、Pixlr 的压缩端点,以及众多「在线压缩图像」服务)都会把你的文件上传到运营商的服务器,运行其压缩算法,再把更小的图像作为下载返回。隐私上的影响并不轻:照片往往包含可识别的内容:人脸、背景里可见的地址、内部 UI 或机密文件的截图、儿童照片、私人空间内拍摄的照片。多数运营商发布的隐私政策都承诺一两小时内删除上传内容并加密传输,较大者(TinyPNG、Smallpdf)持有 ISO/IEC 27001 认证。他们有强烈的商业动机去履行这些政策。但「一小时内删除」不等于「从未看过」。在那一小时里,图像内容驻留在运营商的基础设施中,任何具有相应权限的进程或人都可访问,且按所适用的保留策略出现在日志和备份里。

这个压缩器从不上传任何内容。browser-image-compression 库完全在你的标签页里运行;图像字节由 File API 读取、在 JavaScript 中处理(如果 OffscreenCanvas 可用,则在 Web Worker 中处理),压缩后的输出以可下载的 Blob 形式返回到同一个标签页。你可以在压缩一个批次之前打开浏览器开发者工具的网络标签来验证没有上传:不会有任何包含你图像内容的请求发出。唯一的网络流量是首次访问时一次性从 CDN 获取库(约 95 KB),随后库被缓存。在页面加载后开飞行模式,压缩器仍能在本地文件上工作。对于包含任何敏感内容的照片(人脸、地点、内部截图),浏览器侧的代价显然值得。

什么时候另一个工具才是合适的选择

常见问题

压缩会降低图像质量吗?

在默认 60% 质量下,大多数图像看起来与原始图像几乎相同,但体积却小了 50-80%。 调整滑块以找到适合您需求的平衡点。

是否有文件大小限制?

每张图像最大可达 50 MB。 由于处理在您的浏览器中进行,非常大的文件可能需要一些时间,具体取决于您的设备。

我的图像会上传到服务器吗?

不会。 所有压缩均在您的浏览器本地完成。 您的图像不会离开您的设备,完全私密且安全。

我应该使用哪个质量设置?

对于网页用途,60-70% 是理想的。 对于打印或作品集,请尝试 80-90%。 对于最大压缩(缩略图、电子邮件),30-50% 效果很好。

更多常见问题

为什么我的 PNG 输出只比原文件略小?

PNG 是无损的。节省完全来自对相同像素数据找到更紧凑的 DEFLATE 压缩,这通常比创作工具(Photoshop、Sketch、Figma)默认写出的省 5-25%。如果你的 PNG 之前就已经被很好地优化,剩下的空间就不多。要获得显著的额外缩减,要么转换为 WebP(保留透明度且通常比 PNG 小 25%),要么接受一些损失而转换为 JPEG(可以小得多但失去透明度)。

这个工具能离线使用吗?

首次访问之后可以。browser-image-compression 库(约 95 KB 压缩后)在第一次加载时被浏览器缓存。后续访问压缩器在没有网络连接时也能工作,只要中间浏览器缓存没被清空。你可以在一次打开页面后开飞行模式,并尝试压缩一张本地图像来验证。

我的 EXIF 数据(相机、GPS、拍摄日期)会被保留吗?

不会,EXIF 元数据在压缩时默认会被剥离。对于网络分享通常是好事(GPS 坐标和相机序列号不应泄漏),但对要保留元数据归档的摄影师来说,本工具不合适。请使用具备 EXIF 处理能力的桌面压缩器,如 ImageOptim(macOS)或带 `-copy all` 选项的 jpegtran 来保留元数据。

Max Width 缩放与质量降低有什么区别?

缩放改变图像的像素尺寸:一张 4000x3000 的照片缩到 1920x1440,待编码的像素少了 75%,这在任何压缩开始之前就已经让文件变小了。质量降低(滑块)控制 JPEG 或 WebP 编码器对其 DCT 系数取整的激进程度,使每个像素的编码数据更小。两者叠加:先缩小整体像素数,再对剩下的部分降低质量。对于一个典型的「让这张图适合网络」的流程,把 Max Width 设为 1920、质量设为 70,输出大约是原文件大小的 10-15%。

我能压缩 iPhone 的 HEIC 图像吗?

浏览器对 HEIC 解码的支持有限(Apple 设备上的 Safari 可以;Chrome 和 Firefox 不行)。在非 Apple 浏览器上,本工具会拒绝 HEIC 文件。iPhone 照片的工作流是要么更改 iPhone 设置(相机 → 格式 → 兼容性最佳)以直接保存 JPEG,要么在 Mac 上或用专用工具把 HEIC 一次性转换为 JPEG,然后把那些 JPEG 走本压缩器。在分享到非 Apple 收件人时,iCloud 的「通过…分享」表单通常会自动转换为 JPEG。

有桌面或命令行的等价方案吗?

好几种。对批量自动化,Node.js 里的 sharp 是标准的服务器侧库,产出几乎相同。ImageMagick(magick input.jpg -quality 70 output.jpg)和 GraphicsMagick 能处理超大文件,可在任意 shell 中运行。jpegoptimoptipng 是专门的 JPEG 和 PNG 重新编码器,常能在通用工具之上再挤出几个百分点。要做一次性交互式工作(类似本工具但带更多控件),Squoosh(Google Chrome Labs,同样完全在客户端)支持更广的格式范围,包括 AVIF。

相关工具