php实现按指定大小等比缩放生成上传图片缩略图的方法
本文实例讲述了php实现按指定大小等比缩放生成上传图片缩略图的方法。分享给大家供大家参考。具体实现方法如下:
/** ** *等比缩放 *@paramunknown_type$srcImage 源图片路径 *@paramunknown_type$toFile 目标图片路径 *@paramunknown_type$maxWidth 最大宽 *@paramunknown_type$maxHeight 最大高 *@paramunknown_type$imgQuality图片质量 *@returnunknown */ functionresize($srcImage,$toFile,$maxWidth=100,$maxHeight=100,$imgQuality=100) { list($width,$height,$type,$attr)=getimagesize($srcImage); if($width<$maxWidth ||$height<$maxHeight)return; switch($type){ case1:$img=imagecreatefromgif($srcImage);break; case2:$img=imagecreatefromjpeg($srcImage);break; case3:$img=imagecreatefrompng($srcImage);break; } $scale=min($maxWidth/$width,$maxHeight/$height);//求出绽放比例 if($scale<1){ $newWidth=floor($scale*$width); $newHeight=floor($scale*$height); $newImg=imagecreatetruecolor($newWidth,$newHeight); imagecopyresampled($newImg,$img,0,0,0,0,$newWidth,$newHeight,$width,$height); $newName=""; $toFile=preg_replace("/(.gif|.jpg|.jpeg|.png)/i","",$toFile); switch($type){ case1:if(imagegif($newImg,"$toFile$newName.gif",$imgQuality)) return"$newName.gif";break; case2:if(imagejpeg($newImg,"$toFile$newName.jpg",$imgQuality)) return"$newName.jpg";break; case3:if(imagepng($newImg,"$toFile$newName.png",$imgQuality)) return"$newName.png";break; default:if(imagejpeg($newImg,"$toFile$newName.jpg",$imgQuality)) return"$newName.jpg";break; } imagedestroy($newImg); } imagedestroy($img); returnfalse; }
希望本文所述对大家的PHP程序设计有所帮助。