1.等比例縮小
2.必須是規定的縮圖大小
3.原圖可以裁剪但需要中心點在視窗
<?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; } thumbs('a.jpg','newa.jpg',150,70);?>
<style> img{ border:1px solid #ccc;margin:2px;}</style>
<img src="/a.jpg" /><img src="/newa.jpg" />