如何计算图像高度/宽度

时间:2017-10-04 15:50:26

标签: javascript

我有两个高度和宽度值的变量,如下所示:

var height = 1080
var width = 1920

我知道我要通过width/height来获得这个比例,这给了我这样的话:1.7794253938832252

我遇到的问题是我想获得方面高度/宽度,最终我希望纯粹基于图像的高度和宽度值得到16:93:2。我不想调整它的大小,我只想根据高度和宽度的值知道它应该是什么。

我该如何计算?

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));

此功能将宽度和高度作为参数,并返回宽高比值。