/**
* 对上传的图片进行缩放
* @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