php gd库 缩小图片_【源码分享】PHP中GD库实现图片等比例缩放

//定义必备参数

$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 编辑

分享至:

90ed4b13fe016cebd9fe3df2ae3a899b.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值