图片等比缩放函数

//====================================================================
/*
*等比缩放函数(以保存的方式实现)
*@param string $picname 被缩放的处理图片源
*@param int $maxx 缩放后图片的最大宽度
*@param int $maxy 缩放后图片的最大高度
*@param string $pre 缩放后图片名的前缀名
*@return string 返回后的图片名称(带路径) 如a.jpg =>s_a.jpg
*/


function imageUpdateSize($picname,$maxx=100,$maxy=100,$pre="s_")
{
	$info = getimagesize($picname);//获取图片的基本信息
	// var_dump($info);
	 $w = $info[0];
	 $h = $info[1];
	//获取图片的类型并为此创建对应图片源
	switch($info[2])
	{
		case 1:// GIF
		 $im = imagecreatefromgif($picname);
		break;
		case 2://JPG
		 $im = imagecreatefromjpeg($picname);
		break;
		case 3://PNG
		 $im = imagecreatefrompng($picname);
		break;
		default:
		die("被添加图片类型错误!!!");
	}
	//计算缩放比例
	if(($maxx/$w)>($maxy/$h))
	{
		$b = $maxy/$h;
	}else{
		$b = $maxx/$w;
	}
	//计算出缩放后的尺寸
	$nw = floor($w*$b);
	$nh = floor($h*$b);
	//创建一个新的图像源(目标图像)
	$nim = imagecreatetruecolor($nw,$nh);
	//执行等比缩放
	imagecopyresampled($nim,$im,0,0,0,0,$nw,$nh,$w,$h);
	//输出图像
	$picinfo = pathinfo($picname);//解析源图像名字和路径
	$newpicname = $picinfo["dirname"]."/".$pre.$picinfo["basename"];
	switch($info[2])
	{
		case 1:// GIF
		  imagegif($nim,$newpicname);
		break;
		case 2://JPG
		 imagejpeg($nim,$newpicname);
		break;
		case 3://PNG
		 imagepng($nim,$newpicname);
		break;
		default:
		die("被添加图片类型错误!!!");
	}
	//释放图片资源
	imagedestroy($im);
	imagedestroy($nim);
	//返回结果
	return $newpicname;
}
//echo imageUpdateSize("./uploads/tian.jpg",250,250,ss);
?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值