最新公告
  • 欢迎您光临找主题吧,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • 优化修改timthumb缩略图脚本缩略图质量策略提高加载速度

    优化修改timthumb缩略图脚本缩略图质量策略提高加载速度

    简介

    TimThumb 是一个非常简洁方便用于剪裁图片生成缩略图的PHP程序,只要给它设置一些参数,它就可以生成缩略图。现在很多WordPress主题中,都使用TimThumb这个PHP类库进行缩略图的处理。那如何知道主题是否使用了自动缩略图TimThumb.php脚本?我们可以打开所使用主题目录,查看是否有名称为TimThumb.php或TimThumb.php文件及图片缓存文件夹cache,如果有,说明你所用的主题加载了该脚本。

    在确认了当前主题使用了 TimThumb 脚本后,我们就可以修改 TimThumb 脚本的参数和策略降低所生成的缩略图片质量来提高网站文章列表页的载入速度。

    优化过程

    下面以Tint-K主题为例(主题不同可能所需修改的代码位置文件也会不同,但具体的参数代码应该都是一样的)分享给大家具体的修改方法。

    首先需要打开主题根目录下Tint/core/library/timthumb/Timthumb.php文件,搜索到 DEFAULT_Q 这个参数,这个值是缩略图片质量的意思,如下图所示:

    优化修改timthumb缩略图脚本缩略图质量策略提高加载速度

    上述截图大家可以看到TimThumb脚本默认的缩略图片质量是90,这里的数值是在缩略图请求未添加参数的情况下生效的,什么是参数?缩略图链接后缀有 &q=70&w=300&h=150&zc=1的就是链接中附加的参数,缩略图链接直接为图片后缀结尾的,就是使用脚本的默认参数。

    重点优化

    现在的主题调用TimThumb获取缩略图的非常多,但很少有主题是直接用默认参数生成缩略图的,因为不同的版块需要的缩略图大小不一样,所以都是在链接后面加后缀参数,这样一来,直接改TimThumb脚本里的默认参数没有任何作用,需要改的是链接后缀,这里提供Tint-K主题的后缀参数优化和策略优化。

    首先打开Tint/core/classes/class.PostImage.php,此文件配置全局图片,包括文章的随机图片等。
    约172行,这里是默认的:

        public static function getTimthumbImage($url, $size = 'thumbnail'){
            $timthumb = THEME_URI . '/core/library/timthumb/Timthumb.php';
    
            // 不裁剪Gif,因为生成黑色无效图片
            $imgtype = strtolower(substr($url, strrpos($url, '.')));// 获取文件后缀
            if($imgtype === 'gif') return $url; 
    
            $size = self::getFormatedSize($size);//获取各版块缩略图大小参数
    
            return $timthumb . '?src=' . $url . '&q=90&w=' . $size['width'] . '&h=' . $size['height'] . '&zc=1';//输出缩略图链接
        }

    这里有一个bug,判断gif那里写错了,正确写法上面有提示,但gif不剪裁有个缺陷,就是图片高度不一致,页面会错乱,如果指定高度又无法做到各分辨率自适应,所以我这里也还是暂时关闭这个功能,找到解决办法再说。

    图片质量数值对各后缀图片的影响

    这里就不上图了,各用一张png和jpg图片测试,这里指定的缩略图比较小,所以最后生成的缩略图页小,最后写下结论:

    质量数值 png文件大小 png文件质量评分 jpg文件大小 jpg文件质量评分
    50 19.2k 100 5.2k 50
    60 18.4k 90 5.8k 60
    70 16.3k 80 6.7k 70
    80 14.9k 70 8.1k 80
    90 13.4k 60 11.4k 90
    100 13.3k 50 29.3k 100

    结果显而易见,png和jpg的图片,不同数值生成的文件大小和图片质量,规律居然是相反的!由此可见,并不是质量数值越低,图片就越小,而是要针对不同的后缀去设置数值,这样得到的缩略图才能更小。

    完美优化策略

    将以上默认代码修改为如下:

    public static function getTimthumbImage($url, $size = 'thumbnail'){
            $timthumb = THEME_URI . '/core/library/timthumb/Timthumb.php';
    
            // 不裁剪Gif,因为生成黑色无效图片
            $imgtype = strtolower(substr($url, strrpos($url, '.')));// 获取文件后缀
            if($imgtype === 'gif') return $url;https://.gif不剪裁,直接输出原链接,这里作者写错了,引号内为.gif才能生效
    
            $size = self::getFormatedSize($size);//获取各版块缩略图大小参数
            if($imgtype === '.jpg') return $timthumb . '?src=' . $url . '&q=70&w=' . $size['width'] . '&h=' . $size['height'] . '&zc=1';// 针对jpg图片,设置图片质量值为70
            return $timthumb . '?src=' . $url . '&q=90&w=' . $size['width'] . '&h=' . $size['height'] . '&zc=1';// 针对png和其他图片,设置图片质量值为90
        }
    

    这里的数值都是经过我反复测试,得出的,文件和显示效果都不错,和没优化的比,jpg图片的缩略图小了一半,加快了页面的速度。

    温馨提示

    本站Tint-K之后的版本都已经优化过,无需修改,享受优化后的畅快速度吧!

    1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!331752841@qq.com
    2. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!
    3. 如果你也有好源码或者教程,可以到审核区发布,分享有金币奖励和额外收入!
    4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    5. 如有链接无法下载、失效或广告,请联系管理员处理!
    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
    7. 本站不保证所提供下载的资源的准确性、安全性和完整性,源码仅供下载学习之用!
    8. 如用于商业或者非法用途,与本站无关,一切后果请用户自负!
    9. 如遇到加密压缩包,默认解压密码为"www.lovecger.com",如遇到无法解压的请联系管理员!
    找主题吧 » 优化修改timthumb缩略图脚本缩略图质量策略提高加载速度

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。

    发表评论

    售后服务:

    • 售后服务范围 1、商业模板使用范围内问题免费咨询
      2、源码安装、模板安装(一般 ¥50-300)服务答疑仅限SVIP用户
      3、单价超过200元的模板免费一次安装,需提供服务器信息。
      付费增值服务 1、提供dedecms模板、WordPress主题、discuz模板优化等服务请详询在线客服
      2、承接 WordPress、DedeCMS、Discuz 等系统建站、仿站、开发、定制等服务
      3、服务器环境配置(一般 ¥50-300)
      4、网站中毒处理(需额外付费,500元/次/质保三个月)
      售后服务时间 周一至周日(法定节假日除外) 9:00-23:00
      免责声明 本站所提供的模板(主题/插件)等资源仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,有部分资源为网上收集或仿制而来,若模板侵犯了您的合法权益,请来信通知我们(Email: 80027422@qq.com),我们会及时删除,给您带来的不便,我们深表歉意!

    Hi, 如果你对这款模板有疑问,可以跟我联系哦!

    联系作者

    发表评论

    售后服务:

    • 售后服务范围 1、商业模板使用范围内问题免费咨询
      2、源码安装、模板安装(一般 ¥50-300)服务答疑仅限SVIP用户
      3、单价超过200元的模板免费一次安装,需提供服务器信息。
      付费增值服务 1、提供dedecms模板、WordPress主题、discuz模板优化等服务请详询在线客服
      2、承接 WordPress、DedeCMS、Discuz 等系统建站、仿站、开发、定制等服务
      3、服务器环境配置(一般 ¥50-300)
      4、网站中毒处理(需额外付费,500元/次/质保三个月)
      售后服务时间 周一至周日(法定节假日除外) 9:00-23:00
      免责声明 本站所提供的模板(主题/插件)等资源仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,有部分资源为网上收集或仿制而来,若模板侵犯了您的合法权益,请来信通知我们(Email: 80027422@qq.com),我们会及时删除,给您带来的不便,我们深表歉意!

    Hi, 如果你对这款模板有疑问,可以跟我联系哦!

    联系作者