<acronym id="l1ww1"></acronym>
    1. 加入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.happydiwalifestivals.com//dedecmsjiaocheng/anzhuangshiyong/183769.html

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

      公眾號二維碼

      微信公眾號

      //自動推送 国产99re6在线视频播放