php比例百分比,php 按比例生成小图函数

class My_Lib_Functions {

# ********************************************

# 对象转数组

# ********************************************

function object2array ($obj) {

foreach ($obj as $k => $v) {

$arr[$k] = $v;

unset($v);

}

return $arr;

}

// ********************************************

// 获取限定区间内的图片宽高

//$mx :图像在页面上显示的宽度

//$my :图像在页面上显示的高度

//此处缩略图按比例缩放的原理为x/y = $mx / $my;

// **********************************************

function getPicXY($picurl, $mx = 0, $my = 0){

if (!$size = @GetImageSize($picurl)) return false;  //GetImageSize用来测定任何图象大小并返回图象的尺寸以及文件类型和一个用于普通HTML文件中标记中的height/width文本字符串

if ($mx == 0 && $my == 0) return $size;     //当$mx与$my参数的值为零时,返回图象的大小

if ($mx * $size[1] / $size[0] > $my){     //判断当$mx乘以图象本身的高度再除以图象的宽度大于在页面上显示的图象宽度时

$newXY[0] = $my * $size[0] / $size[1];    //设置产生新图像的宽度为$mx的值乘以图象本身的宽度再除以图象本身的高度

$newXY[1] = $my;         //设置产生的新图像的高度为页面图象显示的高度

}else{             //判断当$mx乘以图象本身的高度再除以图象的宽度不大于在页面上显示的图象宽度时

$newXY[0] = $mx;         //设置产生的新图像的宽度为页面图象显示的宽度

$newXY[1] = $mx * $size[1] / $size[0];    //设置产生新图像的宽度为$mx的值乘以图象本身的高度再除以图象本身的宽度

}

if ($size[0] <= $my and $size[1] <= $mx){    //判断当图像本身的宽度小于等于页面上显示图像的宽度且图像本身的高度小于等于页面上显示图像的高度

$newXY[0] = $size[0];        //设置图像新产生的宽度为图像本身的宽度

$newXY[1] = $size[1];        //设置图像新年产的高度为图像本身的高度

}

return $newXY;           //返回图像的新比例

}

function getNewImageWH2 ($imageUrl, $maxWidth = 0, $maxHeight = 0, &$newWidth = 0, &$newHeight = 0){

if (!$imageSize = @GetImageSize($imageUrl)) return false;

if ($maxWidth == 0 || $maxHeight == 0) {

$newWidth  = $imageSize[0];

$newHeight = $imageSize[1];

} else {

$newWidth  = $maxWidth;

$newHeight = $newWidth * $imageSize[1] / $imageSize[0];

if ($newHeight < $maxHeight) {

$newHeight  = $maxHeight;

$newWidth = $newHeight * $imageSize[0] / $imageSize[1];

}

$imageSize[0] = $newWidth;

$imageSize[1] = $newHeight;

}

return $imageSize;

}

}

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值