我有两个高度和宽度值的变量,如下所示:
var height = 1080
var width = 1920
我知道我要通过width/height
来获得这个比例,这给了我这样的话:1.7794253938832252
我遇到的问题是我想获得方面高度/宽度,最终我希望纯粹基于图像的高度和宽度值得到16:9
或3:2
。我不想调整它的大小,我只想根据高度和宽度的值知道它应该是什么。
我该如何计算?
答案 0 :(得分:0)
如果你知道你的图像将是16:9或3:2(或其他一些标准宽高比),你可以尝试将你的宽度和高度与switch语句中的一些预设相匹配。这是迄今为止的防弹,可能太静止了。
更新:我添加了一个默认子句来捕捉未定义的比率(如果需要)。
var width = 1280;
var height = 720;
var aspectRatio;
switch (width/height) {
case (16/9):
aspectRatio = "16:9";
break;
case (3/2):
aspectRatio = "3:2";
break;
default:
aspectRatio = "Doesn't match any preset";
}
console.log(aspectRatio);
答案 1 :(得分:0)
首先找到高度和宽度之间的HCF(最高公因子),然后用HCF分割高度和宽度以获得比率。请参阅以下代码。
function aspectRatio(width, height) {
var min = (height > width) ? width : height;
var ratioh = height;
var ratiow = width;
var hfc=0;
for(i=min;i>1;i--){
if(height%i==0 && width%i==0){
hfc=i;
break;
}
}
var aspectRatio = [];
aspectRatio['width'] = width/hfc;
aspectRatio['height'] = height/hfc;
return aspectRatio;
}
console.log(aspectRatio(1920,1080));
此功能将宽度和高度作为参数,并返回宽高比值。