<tr id="6mz55"></tr>

  1. <ins id="6mz55"><video id="6mz55"><optgroup id="6mz55"></optgroup></video></ins>
    <code id="6mz55"></code>

  2. <output id="6mz55"></output>

  3. <output id="6mz55"></output>
    加入vip [签到送金币]
    注册 登录 QQ登录
    织梦无忧,用心做好源码!7年品牌,值得信赖! 织梦无忧,个个精品,宁缺毋滥!每月购买不少于3000元精品源码免费分享,早开通,早享受!终身会员临时大促,只需要128元!新会员开通,直接进入会员中心--购买会员--直接开通即可。

    原创dedecms缩略图系列教程:解决dedecms缩略图缩放变形问题

    摘要: 文章介绍 背景:dedecms生成缩略图的原理不够灵活导致缩略图变形,比如后台设置缩略图的尺码为:120*90即为3:2的图片,但是假如内容里的大图尺码为300*300即1:1,这样生成出来的图片就会变形,严重影响网站美观,本文介绍通过修改dedecms生成缩略源码方法解决
    文章介绍

    背景: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

     */

    中间的代码为:

     
    001
    if ( ! function_exists('ImageResize'))
    002
    {
    003
        function ImageResize($srcFile,$toW,$toH,$toFile="")
    004
    {
    005
    global $cfg_photo_type;
    006
    if($toFile=="")
    007
    {
    008
       $toFile = $srcFile;
    009
    }
    010
    $info = "";
    011
    $srcInfo = GetImageSize($srcFile,$info);
    012
    switch ($srcInfo[2])
    013
    {
    014
       case 1:
    015
        if(!$cfg_photo_type['gif'])
    016
        {
    017
         return false;
    018
        }
    019
        $im = imagecreatefromgif($srcFile);
    020
        break;
    021
       case 2:
    022
        if(!$cfg_photo_type['jpeg'])
    023
        {
    024
         return false;
    025
        }
    026
        $im = imagecreatefromjpeg($srcFile);
    027
        break;
    028
       case 3:
    029
        if(!$cfg_photo_type['png'])
    030
        {
    031
         return false;
    032
        }
    033
        $im = imagecreatefrompng($srcFile);
    034
        break;
    035
       case 6:
    036
        if(!$cfg_photo_type['bmp'])
    037
        {
    038
         return false;
    039
        }
    040
        $im = imagecreatefromwbmp($srcFile);
    041
        break;
    042
    }
    043
    $srcW=ImageSX($im);
    044
    $srcH=ImageSY($im);
    045
    if($srcW<=$toW && $srcH<=$toH )
    046
    {
    047
       return true;
    048
    }
    049
    //缩略生成并裁剪
    050
    $newW = $toH * $srcW / $srcH;
    051
               $newH = $toW * $srcH / $srcW;
    052
    if($newH >= $toH)
    053
    {
    054
       $ftoW = $toW;
    055
       $ftoH = $newH;
    056
    }
    057
    else
    058
    {
    059
                         $ftoW = $newW;
    060
       $ftoH = $toH;
    061
    }
    062
               if($srcW>$toW||$srcH>$toH)
    063
    {
    064
       if(function_exists("imagecreatetruecolor"))
    065
       {
    066
        @$ni = imagecreatetruecolor($ftoW,$ftoH);
    067
        if($ni)
    068
        {
    069
         imagecopyresampled($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH);
    070
        }
    071
        else
    072
        {
    073
         $ni=imagecreate($ftoW,$ftoH);
    074
         imagecopyresized($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH);
    075
        }
    076
       }
    077
       else
    078
       {
    079
        $ni=imagecreate($ftoW,$ftoH);
    080
        imagecopyresized($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH);
    081
       }
    082
       //裁剪图片成标准缩略图
    083
       $new_imgx = imagecreatetruecolor($toW,$toH);
    084
       if($newH >= $toH)
    085
       {
    086
        imagecopyresampled($new_imgx,$ni,0,0,0,($newH - $toH)/2,$toW,$toH,$toW,$toH);
    087
       }
    088
       else
    089
       {
    090
        imagecopyresampled($new_imgx,$ni,0,0,($newW - $toW)/2,0,$toW,$toH,$toW,$toH);
    091
       }
    092
       switch ($srcInfo[2])
    093
       {
    094
        case 1:
    095
         imagegif($new_imgx,$toFile);
    096
         break;
    097
        case 2:
    098
         imagejpeg($new_imgx,$toFile,85);
    099
         break;
    100
        case 3:
    101
         imagepng($new_imgx,$toFile);
    102
         break;
    103
        case 6:
    104
         imagebmp($new_imgx,$toFile);
    105
         break;
    106
        default:
    107
         return false;
    108
       }
    109
       imagedestroy($new_imgx);
    110
       imagedestroy($ni);
    111
    }
    112
    imagedestroy($im);
    113
    return true;
    114
    }
    115
    }
    

    修改好后保存文件即可,赶紧添加个带图片的文章试试吧,如果你不愿意修改可直接

    5.6版image.func.php修改方法

    替换

    //缩图片自动生成函数,来源支持bmp、gif、jpg、png

    //获得GD的版本

    中间的代码为:

     
    001
    function ImageResize($srcFile,$toW,$toH,$toFile="")
    002
    {
    003
    global $cfg_photo_type;
    004
    if($toFile=="")
    005
    {
    006
       $toFile = $srcFile;
    007
    }
    008
    $info = "";
    009
    $srcInfo = GetImageSize($srcFile,$info);
    010
    switch ($srcInfo[2])
    011
    {
    012
       case 1:
    013
        if(!$cfg_photo_type['gif'])
    014
        {
    015
         return false;
    016
        }
    017
        $im = imagecreatefromgif($srcFile);
    018
        break;
    019
       case 2:
    020
        if(!$cfg_photo_type['jpeg'])
    021
        {
    022
         return false;
    023
        }
    024
        $im = imagecreatefromjpeg($srcFile);
    025
        break;
    026
       case 3:
    027
        if(!$cfg_photo_type['png'])
    028
        {
    029
         return false;
    030
        }
    031
        $im = imagecreatefrompng($srcFile);
    032
        break;
    033
       case 6:
    034
        if(!$cfg_photo_type['bmp'])
    035
        {
    036
         return false;
    037
        }
    038
        $im = imagecreatefromwbmp($srcFile);
    039
        break;
    040
    }
    041
    $srcW=ImageSX($im);
    042
    $srcH=ImageSY($im);
    043
    if($srcW<=$toW && $srcH<=$toH )
    044
    {
    045
       return true;
    046
    }
    047
    //缩略生成并裁剪
    048
    $newW = $toH * $srcW / $srcH;
    049
               $newH = $toW * $srcH / $srcW;
    050
    if($newH >= $toH)
    051
    {
    052
       $ftoW = $toW;
    053
       $ftoH = $newH;
    054
    }
    055
    else
    056
    {
    057
                         $ftoW = $newW;
    058
       $ftoH = $toH;
    059
    }
    060
               if($srcW>$toW||$srcH>$toH)
    061
    {
    062
       if(function_exists("imagecreatetruecolor"))
    063
       {
    064
        @$ni = imagecreatetruecolor($ftoW,$ftoH);
    065
        if($ni)
    066
        {
    067
         imagecopyresampled($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH);
    068
        }
    069
        else
    070
        {
    071
         $ni=imagecreate($ftoW,$ftoH);
    072
         imagecopyresized($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH);
    073
        }
    074
       }
    075
       else
    076
       {
    077
        $ni=imagecreate($ftoW,$ftoH);
    078
        imagecopyresized($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH);
    079
       }
    080
       //裁剪图片成标准缩略图
    081
       $new_imgx = imagecreatetruecolor($toW,$toH);
    082
       if($newH >= $toH)
    083
       {
    084
        imagecopyresampled($new_imgx,$ni,0,0,0,($newH - $toH)/2,$toW,$toH,$toW,$toH);
    085
       }
    086
       else
    087
       {
    088
        imagecopyresampled($new_imgx,$ni,0,0,($newW - $toW)/2,0,$toW,$toH,$toW,$toH);
    089
       }
    090
       switch ($srcInfo[2])
    091
       {
    092
        case 1:
    093
         imagegif($new_imgx,$toFile);
    094
         break;
    095
        case 2:
    096
         imagejpeg($new_imgx,$toFile,85);
    097
         break;
    098
        case 3:
    099
         imagepng($new_imgx,$toFile);
    100
         break;
    101
        case 6:
    102
         imagebmp($new_imgx,$toFile);
    103
         break;
    104
        default:
    105
         return false;
    106
       }
    107
       imagedestroy($new_imgx);
    108
       imagedestroy($ni);
    109
    }
    110
    imagedestroy($im);
    111
    return true;
    112
    }
    

    可以直接

    因dedecms版本的不同代码有所不一样,如果有问题可以找跟版网帮忙解决

    上一篇:

    下一篇:

    本文链接:http://www.marcomaranghello.com//dedecmsjiaocheng/anzhuangshiyong/183769.html

    版权声明:本站资源均来自互联网或会员发布,如果侵犯了您的权益请与我们联系,我们将在24小时内删除!谢谢!

    公众号二维码

    微信公众号

    //自动推送 视频在线a
    <tr id="6mz55"></tr>

    1. <ins id="6mz55"><video id="6mz55"><optgroup id="6mz55"></optgroup></video></ins>
      <code id="6mz55"></code>

    2. <output id="6mz55"></output>

    3. <output id="6mz55"></output>