• <nobr id="dkufs"><tr id="dkufs"></tr></nobr>

          <track id="dkufs"></track>
          1. <menuitem id="dkufs"><dfn id="dkufs"></dfn></menuitem>
              <tbody id="dkufs"></tbody>
              <tbody id="dkufs"><nobr id="dkufs"></nobr></tbody>
                [簽到送金幣]
                注冊 登錄 QQ登錄
                織夢無憂,用心做好源碼!7年品牌,值得信賴! 織夢無憂,個個精品,寧缺毋濫!每月購買不少于3000元精品源碼免費分享,早開通,早享受!終身會員臨時大促,只需要298元!新會員開通,直接進入會員中心--購買會員--直接開通即可。

                原創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.009887.com/dedecmsjiaocheng/anzhuangshiyong/183769.html

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

                公眾號二維碼

                微信公眾號

                在線咨詢 x
                有什么可以幫到你
                點擊咨詢
                //自動推送 丰满少妇被弄高潮大叫
              1. <nobr id="dkufs"><tr id="dkufs"></tr></nobr>

                      <track id="dkufs"></track>
                      1. <menuitem id="dkufs"><dfn id="dkufs"></dfn></menuitem>
                          <tbody id="dkufs"></tbody>
                          <tbody id="dkufs"><nobr id="dkufs"></nobr></tbody>