名站网址导航为大驾家提供DedeCMS站点程序站点教程相关的知识,比如织梦程序安装教程,织梦程序系统故障等教程。
背景:织梦程序dedecms网站程序生成缩略图的原理不够灵活导致缩略图变形,比如网站的后台设置缩略图的尺码为:120*90即为3:2的图片,但是假如网站内容里的大图尺码为300*300即1:1,这样生成出来的图片就会变形,严重影响站点美观,本文介绍通过修改dedecms网站程序生成缩略源码相关具体操作方法解决定问题 打开“include/image.func.php”网站文件,该网站文件在dedecms网站程序5.6,5.7中所在的目录不一样,5.6中网站文件在/include/下,5.7中网站文件在/include/helpers/,如果你懒的找可以直接在站点根目录搜索image.func.php网站文件 如果你使用的是dedecms网站程序5.7,打开目录/include/helpers/找到image.helper.php网站文件 如果你使用的是dedecms网站程序5.6,打开目录/include/找到image.func.php网站文件 5.7版image.helper.php修改相关具体操作方法 替换 /** * 缩图片自动生成系统数据库函数,来源支持bmp、gif、jpg、png * 但生成的小图只用jpg或png格式 * * @access public * @param string $srcFile 图片路径 * @param string $toW 转换到的宽度 * @param string $toh 转换到的高度 * @param string $toFile 输出网站文件到 * @return string */ 至 /** * 获得GD的版本 * * @access public * @return int */ 中间的相关具体代码如下为: if ( ! function_exists('ImageResize')) { 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; } } 修改好后保存网站文件即可,赶紧添加个带图片的文章试试吧,如果你不愿意修改可直接 5.6版image.func.php修改相关具体操作方法 替换 //缩图片自动生成系统数据库函数,来源支持bmp、gif、jpg、png 至 //获得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; } 可以直接 因dedecms网站程序版本的不同相关具体代码如下有所不一样,如果有问题可以找织梦程序58网帮忙解决 |
关于DedeCMS站点程序站点教程相关的知识,就说到这里了希望能帮助朋友们。织梦程序DedeCMS站点程序站点robots网站文件详细写法以及优化