图片压缩原理:为什么能变小还不糊?
图片之所以能压缩到原来的几分之一还看不出糊,是因为它丢掉的多是人眼本就分辨不出的信息。图片压缩,是指用编码算法减少图片所占字节数的操作,分为不丢信息的无损压缩和舍弃部分细节的有损压缩两类。JPG 靠丢弃人眼不敏感的高频细节与色彩信息换体积,PNG 则一字节不丢地重新打包。在小鹿 Image 用压缩图片工具,浏览器本地处理、图片不上传、免费无需注册。下面把有损与无损、各格式怎么压、以及为什么压完不糊讲清楚。
图片压缩到底是什么?
图片压缩就是用编码算法减少图片占用的字节数,让同一张图的文件变小,而画面尽量保持原样。它解决的核心矛盾是:原始位图按每个像素逐点存储会非常大,但其中存在大量重复和人眼感知不到的冗余,压缩就是把这些冗余去掉。
原始图片为什么那么大
一张未压缩的图,按每个像素存红绿蓝三个分量算,4000×3000 的照片大约要 3600 万个像素、几十兆字节。但相邻像素往往颜色接近、整片天空几乎一个色,这些重复信息没必要逐点存,压缩算法正是抓住这一点。
压缩的两个着力点
- 去冗余:相邻像素相近、整片同色等可预测的重复信息,用更紧凑的方式记录,这部分不丢信息。
- 去感知冗余:人眼分辨不出的细微差别(高频纹理、轻微色差)直接舍弃,这部分会丢信息,但通常看不出。
一句话:无损压缩只去重复信息、能完整还原;有损压缩还会舍弃人眼不敏感的细节,换来更小的体积,但还原不回原图。
有损压缩和无损压缩有什么区别?
区别在于能不能完整还原:无损压缩解码后和原图一模一样、字节级一致;有损压缩为换更小体积舍弃了部分信息,解码后是近似而非原图。两者各有适用场景,不是谁取代谁。
无损:能还原,但体积降得有限
无损压缩像把行李叠整齐再装箱,东西一件不少,只是更紧凑。PNG、GIF、以及 WebP 的无损模式都属于这类。优点是可反复编辑保存不掉质,缺点是对色彩连续的照片压缩率有限,体积往往还是偏大。
有损:体积小,但不可逆
有损压缩会真正丢掉信息,且丢掉的拿不回来。JPG、WebP/AVIF 的有损模式属于这类。它在照片上表现出色,相同观感下体积比无损小很多;代价是反复有损保存会层层掉质(俗称二次压缩)。
| 对比维度 | 无损压缩 | 有损压缩 |
|---|---|---|
| 能否还原原图 | 能,字节级一致 | 不能,只是近似 |
| 体积下降幅度 | 较小 | 较大 |
| 反复保存 | 不掉质 | 会层层掉质 |
| 典型格式 | PNG、GIF、WebP 无损 | JPG、WebP/AVIF 有损 |
| 适用场景 | 截图、图标、存档、需透明 | 照片、网页配图、发图分享 |
JPG、PNG、WebP 各自是怎么压的?
三种主流格式压缩思路完全不同:JPG 靠丢弃人眼不敏感的高频与色彩做有损压缩,PNG 靠调色板和无损编码不丢信息,WebP 则两条路都走、相同画质下通常比 JPG 更小。
JPG:DCT 变换 + 量化 + 色度子采样
JPG 是照片压缩的主力。它先把图像分成 8×8 的小块,用离散余弦变换(DCT)把每块从像素转成不同频率的系数;再用量化表把高频系数大幅取整甚至归零——高频对应细密纹理,正是人眼最不敏感的部分。这一步是 JPG 丢信息的关键,质量参数调的就是量化的狠度。
此外 JPG 普遍用色度子采样:把图像拆成亮度和色彩两路,亮度全分辨率保留,色彩按 2×2 等比例降采样。因为人眼对亮度的敏感远高于色彩,色彩信息减半也很难察觉,这又省下可观体积。
PNG:调色板 + DEFLATE 无损
PNG 是无损格式,一字节不丢。它先对每行像素做预测过滤(如记录与左侧像素的差值),让数据更规整、更易压缩;再用 DEFLATE(即 zip 的压缩算法)做无损打包。颜色少的图还能用索引调色板,只存一张色表加每像素的索引号,体积更省。所以纯色块多的截图、图标用 PNG 往往又小又清晰,且支持透明通道。
WebP:有损无损二合一
WebP 由 Google 推出,同时支持有损和无损两种模式。有损模式借鉴了视频编码 VP8 的帧内预测,比 JPG 更聪明地利用块与块之间的关系,相同画质下体积通常比 JPG 小 25%~35%;无损模式则比 PNG 更紧凑,且同样支持透明。可以用图片格式转换把 JPG/PNG 转成 WebP 看体积差距。想系统了解格式怎么选,可读图片格式怎么选。
| 格式 | 压缩方式 | 有损/无损 | 透明 | 最适合 |
|---|---|---|---|---|
| JPG | DCT + 量化 + 色度子采样 | 有损 | 不支持 | 照片、色彩连续的图 |
| PNG | 预测过滤 + DEFLATE / 调色板 | 无损 | 支持 | 截图、图标、需透明 |
| WebP | 帧内预测(有损)/ 改进无损 | 两者皆可 | 支持 | 网页配图、兼顾体积与画质 |
为什么压缩后肉眼几乎看不出差别?
因为压缩算法专挑人眼不敏感的信息下手。人的视觉对画面整体轮廓和亮度变化非常敏感,对细密纹理和色彩的细微差别则迟钝得多,丢掉后者基本不影响观感。
人眼对亮度比对色彩敏感
这是色度子采样能省体积还看不出的根本原因。视网膜里负责亮度的细胞远多于负责颜色的,所以色彩分辨率减半、轮廓和明暗保持清晰时,大脑几乎察觉不到。这也是为什么 JPG 先把图拆成亮度和色彩两路区别对待。
人眼对高频细节不敏感
高频对应密集的细小纹理。量化把这些高频系数取整或归零,丢掉的是诸如一片草地里每根草叶的微小差异——你看到的是一片草地,本就不会逐叶分辨。这就是认知增量所在:压缩不是均匀地降画质,而是有选择地丢掉你看不出的部分,留下你真正在看的部分。
压缩软件里的质量参数,本质是在调「丢多少人眼不敏感的信息」。调到中等,丢的几乎都是你看不出的;调到很低,才会丢到你能看出的部分,出现块状、模糊。
体积和画质怎么取舍?什么时候不该再压?
取舍的关键是看图的用途:用于网页和发图可大胆压、优先体积;用于打印或存档要保画质、谨慎压。而有些图根本不该再做有损压缩。
按用途选强度
- 适用场景:网页配图、社交发图:中等到较高强度,优先小体积加载快,画质够看即可。
- 适用场景:表单/系统上传限 KB:用压缩到指定大小直接压到目标值,具体方法见图片怎么压缩到 100KB 以内。
- 适用场景:打印、印刷:低强度或无损,保留细节和分辨率,避免放大后露出压缩痕迹。
- 适用场景:素材存档、二次编辑:保留无损原图,编辑导出时再压,避免反复掉质。
这几种图不建议再压
压缩并非越多越好,下面几种情况是边界:
- 已经有损压过的图:再做有损压缩体积降得少、画质却再受损,得不偿失。
- 需要无损存档或归档:合同、证书、设计源图等应保留无损格式,别用有损压缩当长期存储。
- 需要反复编辑的图:每次有损保存都会累积损失,编辑期间用无损,定稿再压一次。
实际操作里,先用压缩图片在中等强度试压、对比清晰度,不够小再加一档;体积已达标就停手。换格式有时比硬压更有效——把 PNG 照片转成 JPG 或 WebP,往往一步就降下来。
常见问题
- 图片压缩是免费的吗?需要注册吗?
- 免费,也不需要注册。小鹿 Image 的压缩图片工具直接在浏览器里运行,打开网页选图就能压,没有次数和会员限制。因为计算发生在你自己设备上,不占服务器算力,所以可以一直免费用。
- 压缩图片安全吗?图片会被上传吗?
- 图片不上传。压缩在浏览器本地完成,照片不会离开你的设备,处理含人物、证件、隐私的图也放心。原理上断网也能压,因为计算全在本地。
- 压缩后图片会失真、变糊吗?
- 有损压缩会丢掉部分细节,强度越高越明显,但中等强度下肉眼通常很难看出差别。原因是算法优先丢弃人眼不敏感的高频和色彩信息。想保真就选低强度或无损格式;用于网页、发图等场景,中等强度足够。
- 压缩会给图片加水印吗?
- 不会。压缩只改变文件的编码方式来减小体积,不在画面上添加任何水印或标记。需要水印时可单独用图片添加文字水印工具。
- 手机能用吗?怎么操作?
- 能用。在手机浏览器打开压缩图片工具,从相册选图、设好强度即可压,压完点保存到相册。iOS Safari、安卓 Chrome 等主流浏览器都支持。
- 图片大小或像素有限制吗?
- 一般的手机照片、截图都能直接处理。超大尺寸(如上亿像素的扫描图)受设备内存影响可能较慢或处理失败,遇到这种情况可先用调整图片尺寸把分辨率降一档再压。
- 已经压过的图再压一次会更小吗?
- 通常不划算。有损压缩过的图再做有损压缩,体积往往降得很少,画质却会再次受损,俗称二次压缩。除非确有体积要求,否则不建议对压过的图反复压缩。
- PNG 和 JPG 哪个压得更小?
- 看图的内容。照片类色彩连续、细节多,JPG 这类有损格式压得更小;截图、纯色图标、需要透明的图用 PNG 无损更合适。拿不准可以两种都试,对比体积与清晰度后再选。
动手试试
看完直接动手——用压缩图片工具,在浏览器本地处理,图片不上传、免费无需注册。
参考资料
「小鹿 Image」团队维护,更新于 2026-06-24。如发现问题或建议,欢迎通过反馈入口联系我们。