一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

php 按比例生成小图函数

时间:2010-02-27 编辑:简简单单 来源:一聚教程网

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, $max, $max, &$new, &$new){
    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;
}


}
?>

热门栏目