图片压缩的工作原理
图片压缩就是通过去除冗余像素数据、优化视觉信息的存储方式,来减小数字图像的文件体积。基本思路有两种:有损压缩(JPG 和有损 WebP 用的就是这个)选择性地丢掉人眼最不容易察觉的图像数据——比如细微的颜色变化、高频噪点、复杂区域里的精细细节。无损压缩(PNG 和无损 WebP)则是更高效地重新排列数据,一个像素都不丢,文件更小但画质完美。
ImgNeo 针对每种图片格式都有专门调优的算法。处理照片时,我们用了优化版的 DCT 量化——类似 JPEG 的思路,但加入了现代的心理视觉调优。处理截图和纯色块为主的图形时,用基于调色板的优化方案,既能大幅压缩,文字和边缘又保持锐利。
有损 vs 无损:该选哪个?
有损压缩适合照片、网页图片,以及体积比绝对画质更重要的场景。75-85% 画质档位下,大多数人根本看不出有损压缩和原图的区别,但体积能小 60-80%,效果相当惊人。
无损压缩更适合带文字的截图、Logo、图标、医学影像,以及以后还可能需要编辑或重新保存的图片。PNG 和无损 WebP 能完整保留每一个像素,但代价是压缩幅度没那么大——通常在 10-40% 左右。
最佳实践:拿到最优压缩效果
一定要从最高质量的源文件开始压——已经被压缩过的图片再压一次,画质损失会叠加。用并排预览功能 100% 放大对比,如果看不出差别,那就是你的最佳平衡点了。网页图片的话,普通内容图控制在 100KB 以内,首屏大图不超过 200KB 比较理想。
格式转换方面,WebP 在网页场景几乎完胜 JPG 和 PNG——它同时支持有损和无损模式,还带透明通道,而且目前全球浏览器支持率已经超过 95%。PNG 仍然是需要完美边缘和透明效果、又要兼容老浏览器的图形的最佳选择。