WebP图片质量怎么评估才靠谱?
我最近把项目里的JPG都转成WebP了,体积是小了不少,但肉眼看着有些图好像糊了,尤其是文字和图标边缘。有没有什么靠谱的方法能客观评估WebP压缩后的质量?
我试过用不同quality参数(比如70、80、90)导出,但光靠肉眼对比太主观了。而且浏览器里看有时候还受CSS缩放影响,更难判断。
比如下面这段CSS,我给图片加了高清屏适配,会不会干扰我对原图质量的判断?
.product-img {
width: 100%;
height: auto;
image-rendering: -webkit-optimize-contrast;
/* 有些设备上开了这个反而更糊 */
}
ssim或psnr工具直接计算原图和压缩图的相似度,数值最客观。别纠结CSS渲染影响,先测原始图片。想省事就用Google的libwebp命令行工具自带的质量分析。用命令行工具自带的质量评估
cwebp转换的时候直接带评估参数:
输出会显示SSIM和PSNR分数。SSIM越接近1越好,PSNR一般40以上肉眼基本看不出区别。
用ImageMagick对比原始图和WebP
这会生成一张差异图,数值越接近1差异越小。
关于你那个CSS的问题
先把那段CSS注释掉,在浏览器里按实际尺寸查看,别用width:100%让它缩放。最简单的办法是把原图和新图拖到两个新标签页,100% zoom下并排对比。
如果想偷懒省事,Squoosh.app(Google出的在线工具)可以直接对比原图和压缩后的效果,还能看到SSIM分数,用起来很直观。
文字和图标边缘模糊的话,可以适当提高quality到85-90,或者检查一下转换时有没有加 -sharp_yuv 参数,这个对边缘清晰度有帮助。