最新活动:电脑PC端+手机端+微网站+自适应网页多模板选择-建站388元起价!!!
当前位置:主页 > 网站建设 > [转载]解决dedecms(5.6/5.7)缩略图缩放变形问题方法

[转载]解决dedecms(5.6/5.7)缩略图缩放变形问题方法

时间:2023-07-17 10:07:17 阅读: 文章分类: 网站建设 作者: dede技术员

导读:织梦教程织梦教程解决dedecms(5.6/5.7)缩略图缩放变形问题方法,我们知道,dedecms缩略图是自动提取,相当于原图的等比例缩放了,比如后台设置缩略图的尺码为:12织梦模板网站织梦模板安装。

织梦模板网站织梦模板安装解决dedecms(5.6/5.7)缩略图缩放变形问题方法,我们知道,dedecms缩略图是自动提取,相当于原图的等比例缩放了,比如后台设置缩略图的尺码为:120*90即为3:2的图片,但是假如内容里的大图尺码为300*300即1:1,这样生成出来的图片就会变形,直接后台设置的缩略图大小不起作用啊,这样严重影响网站美观,本文介绍通过修改dedecms生成缩略源码方法解决定问题。   打开include/image.func.php文件,该文件在dedecms5.6/5.7中所在的目录不一样,5.6中文件在/include/下,5.7中文件在/include/helpers/   如果你使用的是dedecms5.7,打开目录/include/helpers/找到image.helper.php文件。 如果你使用的是dedecms5.6,打开目录/include/找到image.func.php文件。   dedecms5.6版image.func.php修改方法(直接替换原来方法)   //[2020-11-04]:解决缩略图缩放变形问题(宽度、高度为后台设置宽高) 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; } //[2020-11-04]:解决缩略图缩放变形问题(宽度、高度为后台设置宽高) 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']) { &nbsdede网站模板p;           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 {     &nbsdede免费模板p;       $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; }   dedecms5.7版image.helper.php修改方法:   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']) {     &ndede免费校板下战bsp;           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;     } }相关织梦模板网站织梦模板安装。

关键词标签: 织梦 缩略图 缩放

声明: 本文由我的SEOUC技术文章主页发布于:2023-07-17 ,文章[转载]解决dedecms(5.6/5.7)缩略图缩放变形问题方法主要讲述缩放,缩略图,织梦网站建设源码以及服务器配置搭建相关技术文章。转载请保留链接: https://www.seouc.com/article/web_28432.html

我的IDC 网站建设技术SEOUC.COM
专注网站建设,SEO优化,小程序设计制作搭建开发定制网站等,数千家网站定制开发案例,网站推广技术服务。
  • 5000+合作客服
  • 8年从业经验
  • 150+覆盖行业
  • 最新热门源码技术文章