PHP缩略图,满窗格等比例缩小
程序员文章站
2022-06-01 22:00:40
...
php代码
<?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); ?>