PHP生成等比缩略图类和自定义函数分享(2)


<?php
 
function thumbs($FileName,$SaveTo,$SetW,$SetH){
    $IMGInfo= getimagesize($FileName);
    if(!$IMGInfo) return false;
        
    if($IMGInfo['mime']== "image/pjpeg" || $IMGInfo['mime']=="image/jpeg"){
        $ThisPhoto= imagecreatefromjpeg($FileName);
    }elseif($IMGInfo['mime']== "image/x-png" || $IMGInfo['mime']== "image/png"){
        $ThisPhoto= imagecreatefrompng($FileName);  
    }elseif($IMGInfo['mime']== "image/gif"){
        $ThisPhoto=imagecreatefromgif($FileName);
    }
    
    $width=$IMGInfo[0];
    $height=$IMGInfo[1];  
    $scalc = max($width/$SetW,$height/$SetH);
    $nw = intval($width/$scalc);
    $nh = intval($height/$scalc);
    echo "缩略大小:w$nw,h$nh <br /-->";
    
    if($SetW-$nw == 1){$nw = $SetW;}
    if($SetH-$nh == 1){$nh = $SetH;}
    echo "+修正1像素: w$nw,h$nh<br>";
    
    //补宽
    if($SetW-$nw > 0){
        $nh = $nh +(($nh/$nw) * ($SetW-$nw));
        echo "*需补宽".($SetW-$nw).",陪补高".(($nh/$nw) * ($SetW-$nw))."  <br>"; 
        $nw = $SetW;
    }
    //补高
    if($SetH-$nh > 0){
        $nw = $nw + (($nw/$nh) * ($SetH-$nh));
        echo "*需补高".($SetH-$nh).",陪补宽". (($nw/$nh) * ($SetH-$nh)) ."<br>";
        $nh = $SetH;
    }
    $nw = intval($nw);
    $nh = intval($nh);
    echo "+修正大小:w$nw,h$nh<br>";
    
    $px = ($SetW - $nw)/2;
    $py = ($SetH - $nh)/2;
    echo "窗口大小:w$SetW,h$SetH <br>";
    echo "+偏移修正:x$px,y$py <br>";
    
    $NewPhoto=imagecreatetruecolor($SetW,$SetH);
    imagecopyresized($NewPhoto,$ThisPhoto,$px,$py,0,0,$nw,$nh,$width,$height);
    ImageJpeg ($NewPhoto,$SaveTo);
    return true;
}
    
?>

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/ff468ef484f4ede8436dcd9996cb2c99.html