dedecms織夢編輯器上傳圖片時,圖片寬度過大自動按比例縮小(親測)


做一個帶會員系統的站點,想限制會員上傳圖片大小,節省空間,所以在網絡上找了一些方法!此代碼同樣適用於后台編輯器上傳等比例縮小,最后親測實用代碼如下:

一、首先在后台基本參數添加2個字段 :cfg_imgresize,cfg_maxwidth ,相關設置如下:

1,

2,

二、打開 include/dialog/select_images_post.php 大約63行找到  move_uploaded_file($imgfile, $fullfilename) or die("上傳文件到 $fullfilename 失敗!");  ! 后面添加

$imgw=getimagesize($fullfilename);
if($cfg_imgresize=='Y' && $imgw[0]>$cfg_maxwidth){
  ImageResize2($fullfilename,$cfg_maxwidth);
}

保存!

三、打開 include/helpers/image.helper.php 在最后面添加 

/**
 *  圖片等比例縮小,來源支持bmp、gif、jpg、png
 *  但生成的小圖只用jpg或png格式
 *
 * @access    public
 * @param     string  $srcFile  圖片路徑
 * @param     string  $toW  最大寬度,超出自動縮放為此寬度
 * @param     string  $toFile  輸出文件到
 * @return    string
 */
 if ( ! function_exists('ImageResize2'))
 {
     function ImageResize2($srcFile, $toW, $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) return TRUE;
          $toWH= $srcWH=$srcW/$srcH;
          $ftoW=$toW;
          $ftoH=$toW/$toWH;
         if($srcW>$toW)
         {
             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);
             }
             switch ($srcInfo[2])
             {
                 case 1:
                     imagegif($ni,$toFile);
                     break;
                 case 2:
                     imagejpeg($ni,$toFile,100);
                     break;
                 case 3:
                     imagepng($ni,$toFile);
                     break;
                 case 6:
                     imagebmp($ni,$toFile);
                     break;
                 default:
                     return FALSE;
             }
             imagedestroy($ni);
         }
         imagedestroy($im);
         return TRUE;
     }
 }

保存!

~~~~~~~~~~結束~~~~~~~~~~~~~~~

就可以實現 dedecms在上傳圖片時寬度過大自動等比例壓縮!

這樣就再也不用擔心上傳的圖片太大了!也不用很麻煩的一張張手動修改了!

當然,如果要上傳超過設置的寬度的大圖的話,請到基本參數中將 “限制上傳圖片大小”,設置為 N,保存即可!

適用於:dedecms織夢系統默認的ckeditor編輯器。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM