您的位置:首页 > 编程语言 > PHP开发

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

2013-04-26 16:13 691 查看
(转自本人百度空间)

很多网站的头像或者图片可以按照输入的参数进行调整。例如新浪微博,头像有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,因为路径不是绝对路径,也相对更安全。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐