小李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在搜索结果页添加友好提示知识,包括dedecms搜索没有结果如何在搜索结果页添加友好提示_织梦58,dedecms添加子类dedecms选项卡dedecms能自定义么dedecms网页添加dedecms表单权限...

  • 织梦cms手机网站添加详情内页上一页/下一页的翻页功能

    小李网络公司介绍织梦cms手机网站添加详情内页翻页功能知识,包括DEDEcms手机网站内页上一页/下一页的翻页功能 - 百度经验,dedecms详情页面怎么实现上一页和下一页? - 搜外问答....

  • 织梦cms搬家时出现数据库导入失败解决方法

    小李网络公司介绍织梦cms搬家时出现数据库导入失败解决方法知识,包括织梦数据库文件在哪织梦数据库dedecms大数据库dedecms采集后导入dedecms导入excel文章dedecms导入doc插件dedecms导入文章dedecms导入...

  • 织梦cms去除列表页文章标题加粗标签方法

    小李网络公司介绍织梦cms去除列表页文章标题加粗标签方法知识,包括织梦标签教程html中的加粗标签dedecms主页标签dedecms标签在线dedecms栏目标签织梦标签名称dedecms下载标签dedecms插件标签....

  • 织梦cms虚拟主机空间商禁用fsockopen函数解决方法

    小李网络公司介绍织梦cms虚拟主机空间商禁用fsockopen函数解决方法知识,包括虚拟主机空间租用香港虚拟主机空间免备案虚拟主机空间虚拟主机空间500m虚拟主机空间申请虚拟主机空间商虚拟主机...

  • 织梦cms支付宝接口常见错误代码解决方法

    小李网络公司介绍织梦cms支付宝接口常见错误代码解决方法知识,包括支付宝错误代码1202dede支付接口falipay错误代码支付宝错误代码6001dedepaypal支付接口wfphp订单系统dede织梦API接口插件dede如何做...

  • 织梦cms调用分类及分类下文章的调用办法

    小李网络公司介绍织梦cms调用分类及分类下文章的调用办法知识,包括织梦相关文章调用织梦调用代码dedecms调用网站dedecms代码调用织梦常用调用标签dedecms文章日期dedecms文章代码dedecms生成文章...

  • 织梦cms生成select下拉式友情链接列表方法

    小李网络公司介绍织梦cms生成select下拉式友情链接列表方法知识,包括织梦标签教程dedecms删除织梦链织梦标签替换织梦标签理解dede下拉友情链接织梦友情链接样式dede织梦调用标签织梦添加链接...

  • 织梦cms在后台添加栏目文档批量复制功能

    小李网络公司介绍织梦cms在后台添加栏目文档批量复制知识,包括织梦DEDE 在后台添加栏目文档的批量复制功能-[好织梦],DEDE 在后台添加栏目文档的批量复制功能-dedecms教程-跟版网....

  • 织梦cms隐藏畅言浮动评论框解决方法

    小李网络公司介绍织梦dedecms隐藏畅言浮动评论框知识,包括html浮动框架浮动会产生块级框属于浮动框架的html标签android浮动提示框apicloud浮动框淘宝直播怎么显示浮动框ionic浮动框位置....

  • 织梦cms5.7本地缩略图一直在上传中解决方法

    小李网络公司介绍织梦cms5.7本地缩略图一直在上传中解决方法知识,包括缩略图为什么上传不了dedecms上传缩略图怎么上传缩略图dede自定义缩略图微信缩略图如何导出qq上传图片无法显示缩略图...

  • 织梦cms后台生成html速度快1倍设置方法

    小李网络公司介绍织梦cms后台生成html速度快1倍设置方法知识,包括织梦dedecms教程织梦cms建站教程dedecms织梦系统dedecmshtml5自适应dedecms快速生成htmldedecms手机htmldedecms更新主页html织梦生成html....

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