//定义必备参数
$path = "./images";
$picname = "6.jpg";
$maxW = 200;
//指定要缩放到的宽度
$maxH = 200;
//指定要缩放到的高度
$pre = "s_";
//缩小之后的图像的前缀
// 准备画布、画笔、颜料
//格式化路径
$path = rtrim($path,"/")."/";
//获取图像的详细信息
$info = getimagesize($path.$picname);
//根据用户上传的图像,生成相对应类型的画布
switch($info[2]){
case 1:
//生成gif格式画布
$oldImg = imagecreatefromgif($path.$picname);
break;
case 2:
//生成jpg格式画布
$oldImg = imagecreatefromjpeg($path.$picname);
break;
case 3:
//生成png格式画布
$oldImg = imagecreatefrompng($path.$picname);
break;
}
//获取原图的宽高
$oldW = imagesx($oldImg);
$oldH = imagesy($oldImg);
//判断那个边比较长,利用较长的边求得比例
if($oldW>$oldH){
//求得比例
$b = $oldW/$maxW;
//获取缩放之后的宽高
$newW = $oldW/$b;
$newH = $oldH/$b;
}else{
//求得比例
$b = $oldH/$maxH;
//获取缩放之后的宽高
$newW = $oldW/$b;
$newH = $oldH/$b;
}
//根据缩放之后的宽高,生成指定大小的画布
$newImg = imagecreatetruecolor($newW,$newH);
// 开始绘画
//将原图缩放到新图当中
imagecopyresampled($newImg,$oldImg,0,0,0,0,$newW,$newH,$oldW,$oldH);
// 输出图像
//根据用户上传的图像的类型,进行输出或另存为
switch($info[2]){
case 1:
imagegif($newImg,$path.$pre.$picname);
break;
case 2:
imagejpeg($newImg,$path.$pre.$picname);
break;
case 3:
imagepng($newImg,$path.$pre.$picname);
break;
}
// 释放资源
imagedestroy($oldImg);
imagedestroy($newImg);
?>
本帖最后由 七彩极 于 2017-6-26 10:33 编辑
分享至: