DeDeCMS中如何让缩略图不变形?

想缩略图不拉伸变形显示,就得制作一个和显示缩略图位置大小一致或者图片比例一致且大于缩略图的分辨率就 会不拉伸变形了,当然也可以采取之际制作好分辨率一致的缩略图进行显示。
示例:
1.修改DEDECMS v5.6缩略图生成方法:
默认dedecms5.6默认生成的缩略图,缩略图大小设置为:100*100(直接把图片缩小了)看起来很不美观,影响了图片的观赏性

2.DEDECMS v5.6缩略图裁剪优化方法
修改如下:
打开/includes/image.func.php文件,
//缩图片自动生成函数,来源支持bmp、gif、jpg、png
//但生成的小图只用jpg或png格式
找到代码第44行function ImageResize

//获得GD的版本之间的代码,用如下的代码覆盖(大家请注意备份)。
 

function ImageResize($srcFile,$toW,$toH,$toFile=””){global $cfg_photo_type;if($toFile==””){   $toFile = $srcFile;}$info = “”;$srcInfo = GetImageSize($srcFile,$info);switch ($srcInfo[2]){   case 1:    if(!$cfg_photo_type[‘gif’])    {     return false;    }    $im = imagecreatefromgif($srcFile);    break;   case 2:    if(!$cfg_photo_type[‘jpeg’])    {     return false;    }    $im = imagecreatefromjpeg($srcFile);    break;   case 3:    if(!$cfg_photo_type[‘png’])    {     return false;    }    $im = imagecreatefrompng($srcFile);    break;   case 6:    if(!$cfg_photo_type[‘bmp’])    {     return false;    }    $im = imagecreatefromwbmp($srcFile);    break;}$srcW=ImageSX($im);$srcH=ImageSY($im);if($srcW<=$toW && $srcH<=$toH ){   return true;}//缩略生成并裁剪$newW = $toH * $srcW / $srcH;           $newH = $toW * $srcH / $srcW;if($newH >= $toH){   $ftoW = $toW;   $ftoH = $newH;}else{                     $ftoW = $newW;   $ftoH = $toH;}           if($srcW>$toW||$srcH>$toH){   if(function_exists(“imagecreatetruecolor”))   {    @$ni = imagecreatetruecolor($ftoW,$ftoH);    if($ni)    {     imagecopyresampled($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH);    }    else    {     $ni=imagecreate($ftoW,$ftoH);     imagecopyresized($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH);    }   }   else   {    $ni=imagecreate($ftoW,$ftoH);    imagecopyresized($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH);   }   //裁剪图片成标准缩略图   $new_imgx = imagecreatetruecolor($toW,$toH);   if($newH >= $toH)   {    imagecopyresampled($new_imgx,$ni,0,0,0,($newH – $toH)/2,$toW,$toH,$toW,$toH);   }   else   {    imagecopyresampled($new_imgx,$ni,0,0,($newW – $toW)/2,0,$toW,$toH,$toW,$toH);   }   switch ($srcInfo[2])   {    case 1:     imagegif($new_imgx,$toFile);     break;    case 2:     imagejpeg($new_imgx,$toFile,85);     break;    case 3:     imagepng($new_imgx,$toFile);     break;    case 6:     imagebmp($new_imgx,$toFile);     break;    default:     return false;   }   imagedestroy($new_imgx);   imagedestroy($ni);}imagedestroy($im);return true;}

●本文来源互联网及网友投稿,如有侵权请及时联系本站进行删除。
●转载原创文章请保留地址及版权信息,否则侵权必究。
●分享目的仅供大家学习和交流,请不要用于商业用途。
●该资源版权归原著作者所有,请于下载后24小时内删除。
●如有链接无法下载、失效或广告,请联系右侧点击QQ咨询处理。
●本站资源售价只是赞助,收取费用仅维持本站的日常运营所需。
●如遇到加密压缩包,默认解压密码为"fdeer.com",如遇到无法解压的请联系管理员。

飞鹿日志 » DeDeCMS中如何让缩略图不变形?

发表回复