演示链接:查看演示

dedecms图集 上传图片小于设定尺寸 缩略图生成失败的解决办法

dedecmsCMS图集中,上传的图片像素宽高小于系统设置定的这个尺寸: 

较小的这些图片就会无法生成缩略图,导致图集在网页上缩略图显示X叉号,这应该是dedecmsCMSDEDEcms的一个历史遗漏bug,可用下面方法修复。

/include/helpers/,这个文件中搜索,下面的代码:

 

if($srcW<=$toW && $srcH<=$toH ) return TRUE;

  $toWH=$toW/$toH;

  $srcWH=$srcW/$srcH;

  if($toWH<=$srcWH)

 {

   $ftoW=$toW;

   $ftoH=$ftoW*($srcH/$srcW);

 }

  else

{

  $ftoH=$toH;

  $ftoW=$ftoH*($srcW/$srcH);

  }

 

然后用下面的大片代码替换:

 

$ftoW=$toH;

[size=; font-size: inherit,inherit]                $ftoH=$toH;

        ///

[size=; font-size: inherit,inherit]        if( $srcH<=$toH &&  $srcW<=$toW )

[size=; font-size: inherit,inherit]            {

[size=; font-size: inherit,inherit]                $ftoW=$srcW;

[size=; font-size: inherit,inherit]                $ftoH=$srcH;

[size=; font-size: inherit,inherit]                if(function_exists("imagecreatetruecolor"))

[size=; font-size: inherit,inherit]                {

[size=; font-size: inherit,inherit]                    @$ni = imagecreatetruecolor($ftoW,$ftoH);

[size=; font-size: inherit,inherit]                    if($ni)

[size=; font-size: inherit,inherit]                    {

[size=; font-size: inherit,inherit]                    imagecopyresampled($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH);

[size=; font-size: inherit,inherit]                    }

[size=; font-size: inherit,inherit]                    else

[size=; font-size: inherit,inherit]                    {

[size=; font-size: inherit,inherit]                    $ni=imagecreate($ftoW,$ftoH);

[size=; font-size: inherit,inherit]                    imagecopyresized($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH);

[size=; font-size: inherit,inherit]                    }

[size=; font-size: inherit,inherit]                    }

[size=; font-size: inherit,inherit]                else

[size=; font-size: inherit,inherit]                {

[size=; font-size: inherit,inherit]                    $ni=imagecreate($ftoW,$ftoH);

[size=; font-size: inherit,inherit]                    imagecopyresized($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH);

[size=; font-size: inherit,inherit]                }

[size=; font-size: inherit,inherit]                switch ($srcInfo[2])

[size=; font-size: inherit,inherit]                {

[size=; font-size: inherit,inherit]                    case 1:

[size=; font-size: inherit,inherit]                    imagegif($ni,$toFile);

[size=; font-size: inherit,inherit]                    break;

[size=; font-size: inherit,inherit]                    case 2:

[size=; font-size: inherit,inherit]                    imagejpeg($ni,$toFile,100);

[size=; font-size: inherit,inherit]                    break;

[size=; font-size: inherit,inherit]                    case 3:

[size=; font-size: inherit,inherit]                    imagepng($ni,$toFile);

[size=; font-size: inherit,inherit]                    break;

[size=; font-size: inherit,inherit]                    case 6:

[size=; font-size: inherit,inherit]                    imagebmp($ni,$toFile);

[size=; font-size: inherit,inherit]                    break;

[size=; font-size: inherit,inherit]                    default:

[size=; font-size: inherit,inherit]                    return false;

[size=; font-size: inherit,inherit]                }

[size=; font-size: inherit,inherit]                imagedestroy($ni);

[size=; font-size: inherit,inherit]            } ///

 

        $toWH=$toW/$toH;

        $srcWH=$srcW/$srcH;

        if($toWH<=$srcWH)

        {

            $ftoW=$toW;

            $ftoH=$ftoW*($srcH/$srcW);

        }

        else

        {

            $ftoH=$toH;

            $ftoW=$ftoH*($srcW/$srcH);

        }

 

这样dedecmsCMS上传的图,就不会显示x号了。
 

THE END
喜欢就支持一下吧
点赞0 分享