这次刚好在做一个网站的优化,该网站采用的是织梦dedecms系统5.7,它的文章系统中有一个自动把文章中的第一个图片生成缩略图的功能。这个功能很有用,在首页生成图文集的时候会派到用处。
当图片是jpeg格式的时候,它所生成的缩略图文件总是过于大,因为它采用了100%质量的,但是这里其实是不需要这么高的质量的,首先这个是缩略图,缩略图是原图大大缩小后的图片,通常只有200像素乘以150像素的大小,而原图常常是四倍的高和宽。当图片缩小的这么小的时候,图片的细节已经不再重要,其实也看不清,要的是大概的样子。
所以我所需要的图像质量在50%,就足够了。
比如原图是995 pixels X 557 pixels,格式 jpeg,文件大小为127KB。
原来的缩略图是 200 pixels X 150 pixels, 文件格式jpeg, 文件大小为 31KB。
在我对缩略图函数进行修改参数后,新的缩略图的像素不变,文件格式不变,文件大小为 6KB
new-thumb.jpg就上面两个缩略图而言,视觉上的差别是微乎其微的,但是文件的大小则是大大的不同,一般织梦系统的首页用到的图文集会有五六张缩略图,或者更多的缩略图作为图片来展示文章,这时缩略图的文件大小会大大的影响到页面的显示速度,也会影响用户的体验。
这个缩略图的压缩率,或者说缩略图的图片质量参数,在DeDeCMS的后台是没有地方设置的,我搜索了很多最后才找到正确的函数及参数调整的地方。织梦系统的各个版本的图片缩略图的函数文件名字不同,所在的目录位置也不同,这里只以织梦系统5.7为修改对象。
要修改的文件目录在 /include/helpers/image.helper.php
打开这个文件,在92行,找到
imagejpeg($ni,$toFile,85);
修改为
imagejpeg($ni,$toFile,50);
找到318行,找到
imagejpeg($new_img, $toFile,100);
修改为
imagejpeg($new_img, $toFile,50);
保存,覆盖原来的文件,就可以了。
以上修改,缩略图的质量为50%。