/** * 对上传的图片进行缩放 * @param 原始文件 $srcFile * @param 缩放比例 $percent */ function scale($src,$percent){ //原始图像文件类型,或者用getimage函数获取 // $src="1.jpg"; // $ext=end(explode(".", $src));//也可以使用扩展名来进行判断 //第一步,得到上传图片相关信息 //原图宽,高 $array=getimagesize($src); //print_r($array);exit; $src_w=$array[0]; $src_h=$array[1]; //图片类型值 $typeId=$array[2]; // echo $typeId;exit; switch($typeId){ case 1: $ext="gif"; break; case 2: $ext="jpg"; break; case 3: $ext="png"; break; default: echo "图片格式不正确,请重新上传!"; exit; } //缩放后的图像文件存放值,用随机数和当前的时间戳来命名,防止重复 $dstFile=rand(100, 999).time().".".$ext; //新图片的文件名,其它地方就可以调用了 // echo $dstFile;exit; //缩放比例系数 $percent=0.3; //新图宽高,根据缩放比例不同,也许会出现小数位的尺寸,用ceil(进一取整)或者floor(舍一取整) $dst_w=ceil($src_w*$percent); $dst_h=ceil($src_h*$percent); //创建承载新图的画布 $dst_image=imagecreatetruecolor($dst_w, $dst_h); //载入原图,根据上传图片的类型使用对应的函数 switch($ext){ case "gif": $src_image=imagecreatefromgif($src); break; case "jpg": $src_image=imagecreatefromjpeg($src); break; case "png": $src_image=imagecreatefrompng($src); break; default:exit; } //进行缩放 imagecopyresampled($dst_image, $src_image, 0, 0, 0, 0, $dst_w, $dst_h, $src_w, $src_h); //同上,输出图像到路径 switch($ext){ case "gif": imagegif($dst_image,$dstFile); break; case "jpg": imagejpeg($dst_image,$dstFile); break; case "png": imagepng($dst_image,$dstFile); break; default:exit; } //销毁内存中的残留 imagedestroy($src_image); imagedestroy($dst_image); } //测试 $srcFile="1.jpg"; $per="0.3"; scale($srcFile,$per); *****保留注释内容以便需要的人能完全理解******
本文出自 “方向感” 博客,请务必保留此出处http://itech.blog.51cto.com/192113/1574091
原文地址:http://itech.blog.51cto.com/192113/1574091