如何在不损失画质的前提下压缩图片

多数人把图片压缩当成一笔交易:体积变小,画质变差。这个交换确实存在,但它不是你该动的第一根杠杆。在你碰画质滑块之前,还有三个因素在决定文件大小——其中两个能在不丢一个像素的前提下把照片砍掉一半以上。

这篇文章讲清楚:到底是什么在决定体积、不同用途该瞄准多大、以及怎么在不把照片交给陌生人服务器的情况下做完这件事。

有损与无损:这个区分是关键

无损压缩重写文件的内部表示,去掉冗余,但每个像素值保持不变。一张截图的 PNG 常常能这样瘦掉 40–70%,出来的是逐比特相同的图。截图、Logo、图表、UI 稿,以及任何大片纯色加锐利边缘的东西,都该用无损。

有损压缩丢掉人眼大概率注意不到的信息——主要是平缓过渡区域里的高频细节。JPEG 和 WebP 就是这么干的。一张手机拍的 4MB 照片能压到 300KB,在正常观看尺寸下看不出差别。再往下压就开始露馅了:平缓渐变里出现块状色斑、高对比边缘出现光晕、文字上那种糊掉的“JPEG 味”。

实用规则:图形用无损,照片用有损。 对截图用有损压缩,任何有意义的压缩率下都会得到一团糊。对照片用无损压缩基本没用,因为照片数据本身就接近随机。

真正决定体积的是什么

大家第一反应都是去拖画质滑块。它是第三重要的因素。

1. 分辨率。 文件大小大致随像素数增长。一张 4000×3000 的照片有 1200 万像素;缩到 1200×900 只剩 108 万像素,约为原数据的 9%。如果这张图最终以 800px 宽显示,那把它存成 4000px 宽纯属浪费,跟你怎么压没关系。先缩尺寸,再压缩。 这一步的效果通常胜过画质滑块能做的任何事。

2. 格式。 同样的视觉质量下,新格式就是更小。Google 自己公布的基准测试里,WebP 比 JPEG 小约 25–35%,AVIF 通常还要再小一截。支持度现在很广——所有主流浏览器都能渲染 WebP,AVIF 也紧随其后。例外是需要兼容老旧软件的场景,那 JPEG 仍然是默认选择。

3. 画质设置。 到这一步才轮到它。把 JPEG 质量从 100 降到 80,体积常常减少 3–5 倍,肉眼几乎无感。从 80 降到 60 就开始能看出来了。降到 50 以下通常不值——细节明显丢失,而省下的体积比你想的少,因为剩下的数据恰好是难压的那部分。

按用途定目标

下面是工作经验范围,不是铁律。把它们当起点,并且在图片真正会被观看的尺寸下检查结果。

用途 目标体积 说明
网页首屏大图 150–300KB 先缩到显示宽度
博客正文插图 50–150KB 1200px 宽通常足够
缩略图 / 卡片图 15–40KB 400px 宽,画质可以压狠一点
邮件附件 单张 500KB 以内 很多客户端限制整封邮件的总大小
社交平台发帖 1MB 以内 平台反正会二次压缩,不用跟它较劲
打印或存档 不压缩 保留原图,体积不是这里的约束

最后一行比看上去更重要。留好原图,压副本。 存储很便宜,丢了的原图不便宜。

在浏览器里压缩

所有主流在线压缩工具都是同一个套路:你上传文件,服务器压缩,你下载结果。这意味着你的图片——可能是护照扫描件、签过字的合同、孩子的照片——会躺在别人的磁盘上,躺多久不知道,什么政策不知道。

ToolVeil 的压缩工具在本地干活,用的是浏览器自己的 canvas 和编码接口。没有任何数据被传输。你可以自己验证:打开浏览器开发者工具,切到 Network 面板,压缩一张图。不会出现任何上传请求。

  • 把图片压到指定大小 —— 填入表单要求的上限,工具给出「刚好压得进去」的最高画质。常见上限:老式网页表单 100KB、美国签证照片 240KB、邮件与求职门户 500KB。

这个工具会自动调整质量直到文件达标,用的是“刚好能压进目标”的最高质量设置。如果你想自己控制格式和质量,用图片格式转换器。如果照片是 iPhone 拍的 HEIC 文件,先转格式——见如何把 HEIC 转成 JPG。

输出格式由工具决定。 它们优先用 WebP——同等画质下更小,还能保留透明通道——只有在 JPEG 更贴合你的目标体积时才退回 JPEG,所以下载下来的文件通常是 .webp。这对网页和多数现代平台没问题,但有些上传表单,尤其是签证和考试报名系统,只收 JPG。要传这类系统,把结果再用图片格式转换器转一遍并重新确认体积:同等画质下 JPEG 会略大,原本刚好压进上限的文件可能会重新超标。

如果图片需要匹配的是某个平台的尺寸而不是某个具体体积,社交图片尺寸调整可以一次搞定两件事。

三个把成果毁掉的操作

先压缩再缩尺寸。 你把画质预算花在了没人会看到的像素上,最后文件还是太大。应该先缩到显示尺寸,再压缩。

对已经压过的文件再压一次。 每一轮 JPEG 编码都会再丢一批信息。“再小一点点”来十轮,比一开始就用对设置压一轮差得多。永远从原图重新开始。

用有损编码压截图。 文字和 UI 边缘正是有损压缩最不擅长的东西。凡是锐利边缘加纯色块的图,用 PNG 或 WebP 无损。

常见问题

压缩图片会降低画质吗? 用无损压缩不会,像素完全相同。用有损压缩技术上会,但这个损失是设计成在正常观看尺寸下看不见的。真正看得见的画质损伤,通常来自压过头,而不是来自压缩本身。

网页图片用什么格式最好? 大多数照片和图形用 WebP,需要兼容性时退回 JPEG,需要无损保真或透明通道时用 PNG。在支持的前提下,AVIF 还能更小。

一张照片能压到多小才不糊? 这更多取决于观看尺寸,而不是某个具体数字。以 300px 宽观看的图,30KB 看着没问题;同一个文件拉到 1920px 的首屏大图上就是灾难。在它实际展示的尺寸下判断。

为什么我的 PNG 比原来的 JPEG 还大? 因为 PNG 是无损的。把照片转成 PNG 会保留每个像素,也就保留了 JPEG 当初已经丢掉的全部数据。想省空间就别把照片转 PNG,效果正好相反。

能不能压缩图片但不上传到任何地方? 能。现代浏览器可以完全在内存里完成解码、缩放和重新编码。本站的压缩工具就是这么工作的,你可以在浏览器的 Network 面板里自行确认。

本文提到的工具

← 全部指南