图片压缩

把体积压到能过得了限制为止。图片在这个页面里完成重新编码,保存之前你就能看到每个文件省下了多少。

Advertisement

使用方法

  1. 把图片放进来

    点方框或直接拖拽,可以一次选多张,不同格式混在一起也行。文件不会被发到任何地方 —— 它们只待在标签页的内存里,关掉页面就没了。

  2. 调质量

    没有特别理由就留在 80 附近。想知道这个滑杆到底在干什么,把同一张照片分别用 90 和 60 压一次,对比两个数字:体积差距通常比你想的大,而 80 和 90 的画面差别通常又完全看不出来。

  3. 还需要更小就限制像素

    勾上之后填最大宽高。它不会把小图放大,所以小图进来什么样出去什么样。遇到手机拍的照片,这一项往往比质量滑杆管用得多。

  4. 下载

    一张图直接下载,多张打包成一个 ZIP。结果下方的列表逐个列出压缩前后的大小;实在压不动的时候,它会直接说明,而不是给你一个更大的文件。

质量滑杆究竟在丢什么

有损格式的原理都一样:编码器丢掉你眼睛多半察觉不到的细节,质量值决定丢得多狠。最先被丢的是高频细节 —— 细纹理、发丝、噪点、小字的锐利边缘;最能扛的是大片平滑区域和大色块。所以一张风景照压到 70 还能看,而一张表格截图压到 90 就已经糊了。

有两个结论值得记住。第一,不同格式的数字不能互相比:WebP 的 80 和 JPG 的 80 不是同一种损伤,同样数值下 WebP 通常又小又干净,别把「一律 85」这个习惯从一种格式搬到另一种。第二,这个滑杆不是线性的:从 100 降到 90 常常能省掉四成以上,而从 60 降到 50 省不了多少、画面却明显变差 —— 因为到了那个区间,好丢的早就丢完了,剩下的都是硬伤。

压过头的样子很好认:纯色背景上的边缘出现方块状台阶、天空这类渐变出现条纹、细彩色文字周围出现彩色光晕。看到这些,就说明这张图被压得太狠了。

缩像素和降质量是两件不同的事

日常说话里这两件事经常被混为一谈,但做法和结果完全不同。降质量是画面尺寸不变,只降低每个像素被记录得有多精确;限像素是真的把像素扔掉 —— 宽高各减一半,像素数只剩四分之一,省下来的体积主要来自这里。

该用哪一个,取决于限制是什么。如果限制是「必须小于 2MB」而图片只是给人看,那就动像素:4000 像素宽的照片在任何屏幕上都用不上,缩到 1600 通常比任何质量设置省得都多。如果这张图必须保住分辨率 —— 有人要放大看,或者要打印 —— 那质量就是你唯一的旋钮,而且压到 75 左右就该停手。

有一件事这个工具做不到:把要打印的文件压小。印刷大约需要每英寸 300 像素,A4 满幅意味着横向三千多个像素。为了过上传限制把图压掉再拿去打印,得到的只会是一张发虚、带压缩痕迹的成品,而且在印刷环节怎么补救都补不回来。

压不动的时候会发生什么

有些图确实没有可省的余地,这时工具会如实告诉你,而不是硬塞给你一个更大的文件。最常遇到这种情况的是 PNG,原因有点反直觉。

PNG 是无损的,没有质量可调 —— 它的像素数据像 ZIP 压文本那样被压过,要么完全正确要么直接损坏。你把一张 PNG 读进来重新编码,并不是「再压一次」,而是产出了一个**不同的**无损文件;而不同很容易意味着更大,因为原文件可能出自一个更擅于挑选过滤器的编码器,也可能只是当时有更多时间慢慢压。

所以当重新编码的结果没变小、也没有缩过像素时,这个工具会把原文件原样交回,并在列表里标注「已保留原图」。你点的是压缩,给你一个更大的文件比什么都不做更糟。真想缩小 PNG,诚实的办法只有两个:转成 WebP(同样观感通常小 25–35%,见格式转换工具),或者减少像素。而如果这张 PNG 本来是一张照片 —— 照片的截图、设计工具导出的图 —— 那把它转成 JPG 才是正解,无损格式本来就是装照片的错误容器。

除了体积,还失去了什么

压缩不可逆,在删掉原文件之前,有几件事值得先知道。

  • 对已经压过的图再压一次,损伤会叠加。每一轮都在既有痕迹上再添一层,同一张 JPG 存三次 70,比只存一次 70 难看得多。要从原图开始压。
  • 元数据会被丢掉。这通常是好事:手机照片里带着 GPS 坐标、机型和时间,原样发出去等于告诉全网你家在哪。代价是拍摄日期和相机参数也没了,如果要归档,请自己留一份原始文件。
  • 方向不会被丢,而是被真正转正。竖着拍的照片原本靠元数据记着「该旋转」,这里在解码时就转好了,所以在哪打开都是正的,不依赖对方软件认不认这个标记。
  • 色彩可能有轻微偏移。浏览器 canvas 在 sRGB 下工作,用 Display P3 这类广色域拍的照片会被转换,饱和度高的颜色可能显得平一些。色彩准确度重要的话,别用这个工具。
  • 透明区域会保留 —— 这个工具不改格式,PNG 和 WebP 本来就支持透明,所以不需要你操心;只有输出格式存不了透明时才是问题,那是格式转换工具的活。

实际能省多少

「最多可缩小 90%」这种话是宣传,结果完全取决于你给的是什么。给几个可以参考的区间:

  • 手机照片 4000×3000、3–5MB,质量 80、像素不动:通常落在 300KB 到 800KB。
  • 同一张图把像素限到 1920:通常 100–300KB,在任何正常观看尺寸下看不出区别。
  • 1440×900 的截图:往往一点也省不下来。截图是大片纯色加锐利文字,恰好是有损压缩最不擅长、PNG 最擅长的内容。
  • 已经被 CMS 或图片 CDN 优化过的图:能省个位数百分比就不错,那套流程已经做过这道工序了。
  • 扫描件或文件翻拍:200–500KB 足够,保住分辨率、降低质量就好。

为什么逐个文件列出前后大小,比一句「最高省 90%」有用

结果下方那张清单的存在,正是因为不存在一个适用于所有图的比例。同一个相册里导出的两张照片,行为可能截然相反:一张 4MB 压到 300KB,另一张 800KB 纹丝不动,因为导出它的那次流程里已经有人优化过了。

这张清单也是你校准滑杆的依据。先拿一张有代表性的照片用 80 压一次,看一眼数字,再决定是继续往下压,还是其实你真正需要的是限像素。敢给你一个固定百分比的工具,对你一半的文件都在撒谎 —— 而你会在删掉原图之后才发现。

最后更新:

常见问题

压缩时我的图片会被上传吗?

不会。解码和编码都是跑在你已经打开的页面里的 JavaScript:图片从你的硬盘读进标签页内存,处理完直接写回下载目录。你可以自己验证 —— 打开浏览器开发者工具的 Network 面板再压一次,全程没有任何请求发出去。

质量滑杆对 PNG 有效吗?

无效,也不可能有效 —— PNG 是无损的,没有质量可以调。如果一张 PNG 没有生成新文件,那是因为重新编码的结果并不比原文件小。

压缩会去掉 EXIF 和位置信息吗?

会。对于要发到网上的照片,这通常正是你想要的:图片被画到一块全新的画布上,元数据不会被带过去。如果你自己需要保留拍摄日期、相机参数和位置,请另外留一份原图。

为什么文件返回时名字和大小都没变?

那是工具在告诉你它没有更好的办法。与其给你一个比原来更大的文件,不如原样奉还,并在列表里标注「已保留原图」。通常意味着这张图已经优化过了,或者它是一张 PNG。

可以一次压一批、一次全拿走吗?

可以。加多少张都行,结果打包成一个 ZIP,免得浏览器被几十个下载提示卡住。只有一张图时直接下载,不套 ZIP。

质量拉到 100 就等于没压缩吗?

不完全是。即使拉满,图片也经历了一次解码和重新编码,也就是一代有损压缩,编码器的 100 并不等于数学上的无损。JPG 拉到 100 常常比原文件还大。想零损失,就留原图。

能用它压 PDF 吗?

不能直接用,PDF 得先渲染成图片。如果目标是把 PDF 压到能当邮件附件,请用 PDF 压缩工具 —— 它重新编码文档里的图片,而文字仍然保持为文字。