dedecms5.7无法提取第一个图片为缩略图的解决办法

今天发现dedecms5.7 sp1在发表含图片的文章时,始终无法自动提取缩略图。于是研究了下它的代码。

在dede/inc/inc_archives_functions.PHP的第505行

if($GLOBALS['cfg_ddimg_full']=='Y') @ImageResizeNew($oldpic,$cfg_ddimg_width,$cfg_ddimg_height,$cfg_basedir.$litpic);  else @ImageResize($oldpic,$cfg_ddimg_width,$cfg_ddimg_height,$cfg_basedir.$litpic);  if(!is_file($cfg_basedir.$litpic)) $litpic = '';  

这里调用了@ImageResize函数对图片进行缩小,并将缩小的图片另存为$litpic。但实际上ImageResize函数会再对图片缩小的尺寸进行判断,如果原图已经小于目标尺寸,则不进行缩放直接返回。导致并未进行另存为$litpic的操作。如此一来$litpic的文件并未生成,根据上述代码的最后一行,自然就返回空值。

 

因此,解决办法有二:

一是在系统基本参数-附件设置中将缩略图的宽度跟高度都设为一个较小的值,以确保大部分的图片都会进行缩小。

二是把上述最后一行改为

if(!is_file($cfg_basedir.$litpic)) $litpic = $oldpic;  
意思就是如果不存在缩略图文件,则返回原图作为缩略图。

支付宝扫码打赏 微信扫码打赏

如果本文对你有帮助,欢迎打赏本站

喜欢 ()or分享
    匿名评论
  • 评论
人参与,条评论