<form id="xvzpx"></form>
<th id="xvzpx"></th>

<rp id="xvzpx"><ol id="xvzpx"><delect id="xvzpx"></delect></ol></rp>

<form id="xvzpx"></form>

    <noframes id="xvzpx"><noframes id="xvzpx">
    加入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.encikarman.com//dedecmsjiaocheng/anzhuangshiyong/183769.html

    版權聲明:本站資源均來自互聯網或會員發布,如果侵犯了您的權益請與我們聯系,我們將在24小時內刪除!謝謝!

    公眾號二維碼

    微信公眾號

    //自動推送 国产AV无码AV一区,国产AV无码AV一区二区三区,国产AV无码AV中文AV狼人_福利