//====================================================================
/*
*等比缩放函数(以保存的方式实现)
*@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);
?>
图片等比缩放函数
最新推荐文章于 2023-12-16 11:56:54 发布