• <td id="e08qa"><strike id="e08qa"></strike></td>
      <acronym id="e08qa"><label id="e08qa"></label></acronym>

        <track id="e08qa"></track>
            <tr id="e08qa"><label id="e08qa"><menu id="e08qa"></menu></label></tr>
            加入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.dashidaitv.com//dedecmsjiaocheng/anzhuangshiyong/183769.html

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

            公眾號二維碼

            微信公眾號

            //自動推送 亚洲一区无码久久精品_亚洲AV卡通动漫无码_免费看黑人强伦姧人妻_熟女乱中文字幕熟女熟妇

          1. <td id="e08qa"><strike id="e08qa"></strike></td>
              <acronym id="e08qa"><label id="e08qa"></label></acronym>

                <track id="e08qa"></track>
                    <tr id="e08qa"><label id="e08qa"><menu id="e08qa"></menu></label></tr>