小李SEO博客

网站优化服务

织梦cms缩略图缩放变形解决方法

背景:织梦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/,如果你懒的找可以直接在网站根目录搜索image.func.php文件如果你使用的是dedecms5.7,打开目录/include/helpers/找到image.helper.php文件如果你使用的是dedecms5.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会员文章被评论后自动发短消息给作者方法 下一篇:织梦cms系统后台升级更新后出现空白
织梦cms相关文章阅读
  • 织梦cms字符串截取函数使用教程

    小李网络公司介绍织梦cms字符串截取函数使用教程知识,包括截取字符串中的一部分excel中截取字符串的函数oracle截取字符串前几位mysql截取字符串excel字符串截取sql字符串截取oracle 字符串截取...

  • 织梦cms单页文档应用拓展教程

    小李网络公司介绍织梦cms单页文档应用拓展教程知识,包括dedecms标签文档织梦dedecms教程dedecms不生成文档exceldedecmsdedecms可复制dede文档不能生成php5织梦无法一键生成文档....

  • 织梦cms网站后台与栏目管理空白解决方法

    小李网络公司介绍织梦cms网站后台与栏目管理空白解决方法知识,包括织梦网站后台 栏目管理/栏目更改/一片空白的原因及解决办法,织梦栏目管理高级选项空白如何处理 - 百度经验....

  • 织梦cms网站数据备份步骤详解

    小李网络公司介绍织梦cms网站数据备份步骤详解知识,包括织梦dedecms教程织梦cms建站教程dedecms织梦系统织梦默认模板管理dedecms首页dede织梦仿站acronis备份还原教程织梦cms移动织梦帮助文档,...

  • 织梦cms生成时出现DedeTag Engine Create File False的解决方法

    小李网络公司介绍DedeTag Engine Create File False的解决方法知识.包括织梦生成静态页面出现DedeTag Engine Create File False解决办法,DedeTag Engine Create File False提示的种种原因及解决方法....

  • 织梦cms5.7后台登陆密码忘记修改方法

    小李网络公司介绍织梦cms5.7后台登陆密码忘记修改方法知识,包括dedecms后台管理系统账号密码忘记了怎么办 - 百度经验,教程:忘记最新dedecms5.7后台管理员密码,织梦cms忘记后台登录密码的三种解决...

  • 织梦cms5.6版本换空间的方法

    小李网络公司介绍织梦cms5.6版本换空间知识,包括织梦换空间的方法(dede5.6已测试绝对有效)-织梦安装使用,如何换dede模板织梦更换要过好久dede手机模板切换dede更换图片地址织梦网站怎么整站迁移...

  • 织梦cms后台数据还原不正常解决方法

    小李网络公司介绍织梦cms后台数据还原不正常解决方法知识,包括织梦dedecms教程织梦cms建站教程dedecms织梦系统dedecms数据字段织梦dede数据库织梦两个数据库之梦带数据模板织梦数据库在哪织梦数...

  • 织梦cms文章标题栏突破60个字符限制教程

    小李网络公司介绍织梦cms文章标题栏突破60个字符限制教程知识,包括如何解决织梦DedeCms文章标题字数长度限制的方法教程_织梦58,制图标题栏怎么填写绘图标题栏尺寸装配图标题栏格式绘图标题...

  • 织梦cms5.7在任意栏目获取顶级栏目名称及链接方法

    小李网络公司介绍织梦dedecms5.7在任意栏目获取顶级栏目名称及链接方法知识,包括栏目名称大全创意栏目名称好听的栏目名称大全有趣的栏目名称设计栏目名称文化栏目名称大全健康栏目名称大...

  • 织梦cms增加自定义文档属性的解决方法

    小李网络公司介绍织梦cms增加自定义文档属性知识,包括织梦DEDECMS增加自定义文档属性的解决方法_网站技巧_织梦361,自定义商品属性要怎么填文件属性里没有自定义文件的属性有哪几种自定义商...

  • 织梦cms为后台自定义菜单的完整方法

    小李网络公司介绍织梦cms为后台自定义菜单的完整方法知识,包括dedecms四级菜单织梦源码栏目菜单怎么改dedecms主菜单织梦二级菜单dedecms菜单空白dedecms栏目菜单....

SEO公司排名
 
QQ在线咨询
SEM竞价推广
137-1296-7640
SEO优化外包
137-1296-7640