PHP图片大小处理

<? php
// 调整图片大小
/*
*
 *图片按比例调整大小的原理:
 *1、比较原图大小是否小于等于目标大小,如果是则直接采用原图宽高
 *2、如果原图大小超过目标大小,则对比原图宽高大小
 *3、如:宽>高,则宽=目标宽, 高=目标宽的比例 * 原高
 *4、如:高>宽,则高=目标高,宽=目标高的比例 * 原宽    
 *
*/

$image   =   $_REQUEST [ ' image ' ];
// $image = 'C:/Documents and Settings/TCM/My Documents/Water lilies.jpg';

$max_width   =   $_REQUEST [ ' max_width ' ];
// $max_width = 200;
$max_height   =   $_REQUEST [ ' max_height ' ];
// $max_height = 200;

if  ( ! $max_width
{
    
$max_width   =   80 ;
}

if  ( ! $max_height
{
    
$max_height   =   60 ;
}

$size   =   getimagesize ( $image );    // 得到图像的大小
$width   =   $size [ 0 ];              
$height   =   $size [ 1 ];

$x_ratio   =   $max_width   /   $width ;
$y_ratio   =   $max_height   /   $height ;

if  (( $width   <=   $max_width &&  ( $height   <=   $max_height ))
{
    
$tn_width   =   $width ;
    
$tn_height   =   $height ;
}
elseif  (( $x_ratio   *   $height <   $max_height )
{
    
$tn_height   =   ceil ( $x_ratio   *   $height );
    
$tn_width   =   $max_width ;
}
else  
{
    
$tn_width   =   ceil ( $y_ratio   *   $width );
    
$tn_height   =   $max_height ;
}

$src   =  imagecreatefromjpeg( $image );
$dst   =  imagecreatetruecolor( $tn_width ,   $tn_height );  // 新建一个真彩色图像
imagecopyresampled( $dst ,   $src ,   0 ,   0 ,   0 ,   0 ,
    
$tn_width ,   $tn_height ,   $width ,   $height );         // 重采样拷贝部分图像并调整大小
header ( ' Content-Type: image/jpeg ' );
imagejpeg(
$dst , null , 100 );
imagedestroy(
$src );
imagedestroy(
$dst );
?>
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值