PHP 输出头像到网页,按照输入的参数自动缩放图片

(转自本人百度空间)

很多网站的头像或者图片可以按照输入的参数进行调整。例如新浪微博,头像有180*180和50*50两种,在URL中修改相应的参数就可以获得不同大小的头像。我的实现方式有两种。

第一种是直接保存两种头像,然后根据输入的参数取得相应的头像即可。这种比较简单但是需要额外的存储开销,并且如果前端需要的头像大小比较多,还需要保存更多的图片。

第二种是只保存标准头像,根据输入的参数动态调整。

class test{
	function showIco(){
		$zoomFactor = $_GET["_URL_"][3];//获得目标头像大小
		$icoName = $_GET["_URL_"][2];//获得头像名称
		if($zoomFactor>=150||$zoomFactor<=0)//参数过大或者过小都直接显示原图
			$zoomFactor = 150;
		$icoPath = './uploads';
		$imgSrc = $icoPath.$icoName;//获得文件路径+文件名  
		$openImg = fopen($imgSrc, "r");
		$readImg = fread ($openImg, filesize($imgSrc));//将图片以文件流的形式读取出来
		$userImg = imagecreatefromstring($readImg);//转换为图片
		$imgSize = getimagesize($imgSrc);//获得原头像信息
		$imgType = $imgSize['mime'];//获得图像类型信息
		$imgWidth = $imgSize[0];//原头像宽度
		$imgHeight = $imgSize[1];//原头像长度
		$disImg = ImageCreateTrueColor($zoomFactor,$zoomFactor);//生成要输出的目标图像
		ImageCopyResampled($disImg,$userImg,0,0,0,0,$zoomFactor,$zoomFactor,$imgWidth,$imgHeight);//按照要求的大小进行处理
		header('Content-Type: '."$imgType");//不同类型的图片不同处理
		if($imgType = 'image/gif')
			imagegif($disImg);
		elseif($imgType = 'image/png')
			imagepng($disImg);
		else
			imagejpeg($disImg);
	}
}

前端使用<img src="http://localhost/websit/index.php/test/ico/my_ico.jpg/100">就能显示出100*100的my_ico.jpg。如果最后的参数为50,则显示50*50的头像。

代码基于thinkphp,因为路径不是绝对路径,也相对更安全。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值