//比例缩放,width:img当前宽度,height:img当前高度,maxWidth:最大宽度限制,maxHeight:最大高度限制;返回数组[0]:width,[1]:height
按照现有桌面,精确度在0.01估计也是够了,如果觉得大了或者小了,可以调节参数i的递增大小以调节比例的精确度
function zoom(width,height,maxWidth,maxHeight)
{
var list=new Array(2);
if(width<=maxWidth&&height<=maxHeight)
{
list[0]=width;
list[1]=height;
}
else
{
//求最大公约数
function getDivisor(width,height)
{
var val;
if(width<height)
{
val=width;
width=height;
height=val;
}
while(width%height!=0)
{
val=width%height;
width=height;
height=val;
}
return height;
}
//比例缩小
var x,y;
var result=getDivisor(width,height);
for(var i=0;i<=result;i=i+0.01)
{
if(i*width/result>maxWidth || i*height/result>maxHeight)
{
break;
}
x=parseInt(i*width/result);
y=parseInt(i*height/result);
}
list[0]=x;
list[1]=y;
}
return list;
}