亚洲精品中文字幕无码专区一,中文字幕av一区乱码深夜动态福利,粗大的内捧猛烈进出少妇

          系統城裝機大師 - 唯一官網:www.snowmanhill.com!

          當前位置:首頁 > CMS教程 > 詳細頁面

          解決dedecms(5.6/5.7)縮略圖縮放變形問題方法

          時間:2020-11-04來源:www.snowmanhill.com作者:電腦系統城

          解決dedecms(5.6/5.7)縮略圖縮放變形問題方法,我們知道,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/

          如果你使用的是dedecms5.7,打開目錄/include/helpers/找到image.helper.php文件。
          如果你使用的是dedecms5.6,打開目錄/include/找到image.func.php文件。

          5.6版image.func.php修改方法(直接替換原來方法)

          ?
          1
          2
          3
          4
          5
          6
          7
          8
          9
          10
          11
          12
          13
          14
          15
          16
          17
          18
          19
          20
          21
          22
          23
          24
          25
          26
          27
          28
          29
          30
          31
          32
          33
          34
          35
          36
          37
          38
          39
          40
          41
          42
          43
          44
          45
          46
          47
          48
          49
          50
          51
          52
          53
          54
          55
          56
          57
          58
          59
          60
          61
          62
          63
          64
          65
          66
          67
          68
          69
          70
          71
          72
          73
          74
          75
          76
          77
          78
          79
          80
          81
          82
          83
          84
          85
          86
          87
          88
          89
          90
          91
          //[2020-11-04]:解決縮略圖縮放變形問題(寬度、高度為后臺設置寬高)
          function ImageResize($srcFile, $toW, $toH, $toFile = "") {
              global $cfg_photo_type;
              if ($toFile == "") {
                  $toFile = $srcFile;
              }
              $info = "";
              $srcInfo = GetImageSize($srcFile, $info);
              switch ($srcInfo[2]) {
              case 1:
                  if (!$cfg_photo_type['gif']) {
                      return false;
                  }
                  $im = imagecreatefromgif($srcFile);
                  break;
              case 2:
                  if (!$cfg_photo_type['jpeg']) {
                      return false;
                  }
                  $im = imagecreatefromjpeg($srcFile);
                  break;
              case 3:
                  if (!$cfg_photo_type['png']) {
                      return false;
                  }
                  $im = imagecreatefrompng($srcFile);
                  break;
              case 6:
                  if (!$cfg_photo_type['bmp']) {
                      return false;
                  }
                  $im = imagecreatefromwbmp($srcFile);
                  break;
              }
              $srcW = ImageSX($im);
              $srcH = ImageSY($im);
              if ($srcW <= $toW && $srcH <= $toH) {
                  return true;
              }
              //縮略生成并裁剪
              $newW = $toH * $srcW / $srcH;
              $newH = $toW * $srcH / $srcW;
              if ($newH >= $toH) {
                  $ftoW = $toW;
                  $ftoH = $newH;
              } else {
                  $ftoW = $newW;
                  $ftoH = $toH;
              }
              if ($srcW > $toW || $srcH > $toH) {
                  if (function_exists("imagecreatetruecolor")) {
                      @$ni = imagecreatetruecolor($ftoW, $ftoH);
                      if ($ni) {
                          imagecopyresampled($ni, $im, 0, 0, 0, 0, $ftoW, $ftoH, $srcW, $srcH);
                      } else {
                          $ni = imagecreate($ftoW, $ftoH);
                          imagecopyresized($ni, $im, 0, 0, 0, 0, $ftoW, $ftoH, $srcW, $srcH);
                      }
                  } else {
                      $ni = imagecreate($ftoW, $ftoH);
                      imagecopyresized($ni, $im, 0, 0, 0, 0, $ftoW, $ftoH, $srcW, $srcH);
                  }
                  //裁剪圖片成標準縮略圖
                  $new_imgx = imagecreatetruecolor($toW, $toH);
                  if ($newH >= $toH) {
                      imagecopyresampled($new_imgx, $ni, 0, 0, 0, ($newH - $toH) / 2, $toW, $toH, $toW, $toH);
                  } else {
                      imagecopyresampled($new_imgx, $ni, 0, 0, ($newW - $toW) / 2, 0, $toW, $toH, $toW, $toH);
                  }
                  switch ($srcInfo[2]) {
                  case 1:
                      imagegif($new_imgx, $toFile);
                      break;
                  case 2:
                      imagejpeg($new_imgx, $toFile, 85);
                      break;
                  case 3:
                      imagepng($new_imgx, $toFile);
                      break;
                  case 6:
                      imagebmp($new_imgx, $toFile);
                      break;
                  default:
                      return false;
                  }
                  imagedestroy($new_imgx);
                  imagedestroy($ni);
              }
              imagedestroy($im);
              return true;
          }

          5.7版image.helper.php修改方法

          ?
          1
          2
          3
          4
          5
          6
          7
          8
          9
          10
          11
          12
          13
          14
          15
          16
          17
          18
          19
          20
          21
          22
          23
          24
          25
          26
          27
          28
          29
          30
          31
          32
          33
          34
          35
          36
          37
          38
          39
          40
          41
          42
          43
          44
          45
          46
          47
          48
          49
          50
          51
          52
          53
          54
          55
          56
          57
          58
          59
          60
          61
          62
          63
          64
          65
          66
          67
          68
          69
          70
          71
          72
          73
          74
          75
          76
          77
          78
          79
          80
          81
          82
          83
          84
          85
          86
          87
          88
          89
          90
          91
          92
          if (!function_exists('ImageResize')) {
              function ImageResize($srcFile, $toW, $toH, $toFile = "") {
                  global $cfg_photo_type;
                  if ($toFile == "") {
                      $toFile = $srcFile;
                  }
                  $info = "";
                  $srcInfo = GetImageSize($srcFile, $info);
                  switch ($srcInfo[2]) {
                  case 1:
                      if (!$cfg_photo_type['gif']) {
                          return false;
                      }
                      $im = imagecreatefromgif($srcFile);
                      break;
                  case 2:
                      if (!$cfg_photo_type['jpeg']) {
                          return false;
                      }
                      $im = imagecreatefromjpeg($srcFile);
                      break;
                  case 3:
                      if (!$cfg_photo_type['png']) {
                          return false;
                      }
                      $im = imagecreatefrompng($srcFile);
                      break;
                  case 6:
                      if (!$cfg_photo_type['bmp']) {
                          return false;
                      }
                      $im = imagecreatefromwbmp($srcFile);
                      break;
                  }
                  $srcW = ImageSX($im);
                  $srcH = ImageSY($im);
                  if ($srcW <= $toW && $srcH <= $toH) {
                      return true;
                  }
                  //縮略生成并裁剪
                  $newW = $toH * $srcW / $srcH;
                  $newH = $toW * $srcH / $srcW;
                  if ($newH >= $toH) {
                      $ftoW = $toW;
                      $ftoH = $newH;
                  } else {
                      $ftoW = $newW;
                      $ftoH = $toH;
                  }
                  if ($srcW > $toW || $srcH > $toH) {
                      if (function_exists("imagecreatetruecolor")) {
                  @$ni = imagecreatetruecolor($ftoW, $ftoH);
                          if ($ni) {
                              imagecopyresampled($ni, $im, 0, 0, 0, 0, $ftoW, $ftoH, $srcW, $srcH);
                          } else {
                              $ni = imagecreate($ftoW, $ftoH);
                              imagecopyresized($ni, $im, 0, 0, 0, 0, $ftoW, $ftoH, $srcW, $srcH);
                          }
                      } else {
                          $ni = imagecreate($ftoW, $ftoH);
                          imagecopyresized($ni, $im, 0, 0, 0, 0, $ftoW, $ftoH, $srcW, $srcH);
                      }
                      //裁剪圖片成標準縮略圖
                      $new_imgx = imagecreatetruecolor($toW, $toH);
                      if ($newH >= $toH) {
                          imagecopyresampled($new_imgx, $ni, 0, 0, 0, ($newH - $toH) / 2, $toW, $toH, $toW, $toH);
                      } else {
                          imagecopyresampled($new_imgx, $ni, 0, 0, ($newW - $toW) / 2, 0, $toW, $toH, $toW, $toH);
                      }
                      switch ($srcInfo[2]) {
                      case 1:
                          imagegif($new_imgx, $toFile);
                          break;
                      case 2:
                          imagejpeg($new_imgx, $toFile, 85);
                          break;
                      case 3:
                          imagepng($new_imgx, $toFile);
                          break;
                      case 6:
                          imagebmp($new_imgx, $toFile);
                          break;
                      default:
                          return false;
                      }
                      imagedestroy($new_imgx);
                      imagedestroy($ni);
                  }
                  imagedestroy($im);
                  return true;
              }
          }

          到此這篇關于解決dedecms(5.6/5.7)縮略圖縮放變形問題方法的文章就介紹到這了

          分享到:

          相關信息

          系統教程欄目

          欄目熱門教程

          人氣教程排行

          站長推薦

          熱門系統下載

          亚洲精品中文字幕无码专区一,中文字幕av一区乱码深夜动态福利,粗大的内捧猛烈进出少妇