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

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

                      公眾號二維碼

                      微信公眾號

                      //自動推送 亚洲 欧美 校园 春色 小说-国产午夜福利在线观看视频-免费三级现频在线观看免费-日本av在线播放