<sub id="99jl7"><listing id="99jl7"><menuitem id="99jl7"></menuitem></listing></sub><form id="99jl7"></form>

        <address id="99jl7"><address id="99jl7"><menuitem id="99jl7"></menuitem></address></address><address id="99jl7"></address>

        <sub id="99jl7"><listing id="99jl7"><listing id="99jl7"></listing></listing></sub>

        加入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.genex-mc.com//dedecmsjiaocheng/anzhuangshiyong/183769.html

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

        公眾號二維碼

        微信公眾號

        //自動推送 太深太紧太粗太大好舒服

        <sub id="99jl7"><listing id="99jl7"><menuitem id="99jl7"></menuitem></listing></sub><form id="99jl7"></form>

              <address id="99jl7"><address id="99jl7"><menuitem id="99jl7"></menuitem></address></address><address id="99jl7"></address>

              <sub id="99jl7"><listing id="99jl7"><listing id="99jl7"></listing></listing></sub>