php 縮略圖函數

function makethumb($srcfile,$dir,$thumbwidth,$thumbheight,$ratio=0) {
/*圖象縮略函數 適用於不一樣的圖象存在不一樣的目錄中。 creat by cao2xi 2008-12-19
參數說明:$srcfile 原圖地址;
          $dir  新圖目錄
          $thumbwidth 縮小圖寬最大尺寸
          $thumbheitht 縮小圖高最大尺寸
          $ratio 默認等比例縮放 爲1是縮小到固定尺寸。
*/
    //判斷文件是否存在
    if (!file_exists($srcfile)) {
        return '';
    }
    //生成新的同名文件,但目錄不一樣
    $imgname=explode('/',$srcfile);
    $arrcount=count($imgname);
    $dstfile = $dir.$imgname[$arrcount-1];
    //縮略圖大小
    $tow = $thumbwidth;
    $toh = $thumbheight;
    if($tow < 40) $tow = 40;
    if($toh &lt; 45) $toh = 45;   
    //獲取圖片信息
    $im = '';
    if($data = getp_w_picpathsize($srcfile)) {
        if($data[2] == 1) {
            $make_max = 0;//gif不處理
            if(function_exists("p_w_picpathcreatefromgif")) {
                $im = p_w_picpathcreatefromgif($srcfile);
            }
        } elseif($data[2] == 2) {
            if(function_exists("p_w_picpathcreatefromjpeg")) {
                $im = p_w_picpathcreatefromjpeg($srcfile);
            }
        } elseif($data[2] == 3) {
            if(function_exists("p_w_picpathcreatefrompng")) {
                $im = p_w_picpathcreatefrompng($srcfile);
            }
        }
    }
    if(!$im) return '';
    $srcw = p_w_picpathsx($im);
    $srch = p_w_picpathsy($im);
    $towh = $tow/$toh;
    $srcwh = $srcw/$srch;
    if($towh &lt;= $srcwh){
        $ftow = $tow;
        $ftoh = $ftow*($srch/$srcw);
    } else {
        $ftoh = $toh;
        $ftow = $ftoh*($srcw/$srch);
    }
    if($ratio){
        $ftow = $tow;
        $ftoh = $toh;
    }
    //縮小圖片
    if($srcw > $tow || $srch &gt; $toh || $ratio) {
        if(function_exists("p_w_picpathcreatetruecolor") && function_exists("p_w_picpathcopyresampled") && @$ni = p_w_picpathcreatetruecolor($ftow, $ftoh)) {
            p_w_picpathcopyresampled($ni, $im, 0, 0, 0, 0, $ftow, $ftoh, $srcw, $srch);
        } elseif(function_exists("p_w_picpathcreate") && function_exists("p_w_picpathcopyresized") && @$ni = p_w_picpathcreate($ftow, $ftoh)) {
            p_w_picpathcopyresized($ni, $im, 0, 0, 0, 0, $ftow, $ftoh, $srcw, $srch);
        } else {
            return '';
        }
        if(function_exists('p_w_picpathjpeg')) {
            p_w_picpathjpeg($ni, $dstfile);
        } elseif(function_exists('p_w_picpathpng')) {
            p_w_picpathpng($ni, $dstfile);
        }
    }else {
        //小於尺寸直接複製
    copy($srcfile,$dstfile);
    }
    p_w_picpathdestroy($im);
    if(!file_exists($dstfile)) {         return '';     } else {         return $dstfile;     } }
相關文章
相關標籤/搜索