程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP圖片等比例縮放生成縮略圖函數分享

PHP圖片等比例縮放生成縮略圖函數分享

編輯:關於PHP編程

復制代碼 代碼如下:
<?php
    /*
    *@im     //需要縮放的圖片資源
    *@filetype //制作的縮略圖文件類型
    *@dstimW   //縮放的圖片的寬度
    *@dstimH  //縮放的圖片的高度
    *@thumbname //縮略圖文件名字
function makethumb($im,$dstimW,$dstimH,$thumbname ,$filetype){
            //獲取im的寬度和高度
        $pic_W=imagesx($im);
        $pic_H=imagesy($im);
        $arr = array();
            swith($filetype){
                case 'jpg':
                        $arr[$filetype]="imagejpeg";
                        break;
                case 'png';
                        $arr[$filetype]="imagepng";
                        break;
                case 'jif';
                        $arr[$filetype]="imagegif";
                }
        if(($dstimgW && $dstimgW<$pic_W) || ($dstimgH && $dstimgH<$pic_H) ){
                if($dstimgW && $dstimgW<$pic_W){
                    $dsimgWratio = $dstimgW / $pic_w;
                    $resizereagW =true;

                }
                if($dstimgH && $ $dstimgH <$pic_H){
                    $dsimgHratio = $dstimgH/$pic_H;
                    $resizerreagH =true;
                }
                //縮略圖寬高和原圖寬高比,取最小的那個
                if($resizereagW && $resizerreagH){
                    if($dsimgWratio<$dsimgHratio)
                        $radio = $dsimgWratio;
                    else
                        $radio = $dsimgHratio;     
                }
                if($resizereagW && !$resizerreagH ){
                        $radio = $dsimgWratio;
                }
                if(!$resizereagW && $resizerreagH){
                       $radio = $dsimgHratio ;
                }
                $imgnewW = $pic_W * $radio;
                $imgnewH = $pic_H * $radio;
                if(function_exists("imgcopyresampled")){
                      //創建目標資源畫布
                    $dst = imagecreatetruecolor ($imgnewW, $imgnewH);
                    imagecopyresampled ($dst,$im,0,0,0,0,$imgnewW,$imgnewH,$pic_W,$pic_H);
                }else{
             $dst=imagecreate($imgnewW, $imgnewH);
             imagecopyresized ($dst, $im,0,0,0,0,$imgnewW,$imgnewH,$imgnewH,$pic_W,$pic_H);
                }

        $arr[$filetype]($dst,$thumbname.".$filetype");
        imagedestroy ($dst);
    }else{//縮略圖自身的寬和高已經大於了原圖的寬和高
           //則縮略圖的寬和縮略的高就是原圖的寬和原圖的高
         $arr[$filetype]($im,$thumbname.".$filetype");
         imagedestroy();
    }
}
?>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved