2017-10-04 234 views
1

我有一個高度和寬度值兩個變量,就像這樣:如何計算圖像方面的高度/寬度

var height = 1080 
var width = 1920 

我知道我對做width/height得到比這給我的東西像這樣:1.7794253938832252

時遇到的問題是我想要得到的方面高度/寬度,最終欲得到16:93:2純粹基於所述高度和圖像的寬度的值。我不想調整它的大小,我只是想知道它應該基於高度和寬度的值。

我該如何計算?

+0

把它變成整數並找出最小公分母。那一個應該是'17794253938832252:10000000000000000',你可以做最小公分母比特(它來自GCSE水平數學)。 – ggdx

+0

可以是(16/9-寬度/高度)^ 2 ::(3/2寬度/高度)^ 2 –

回答

0

如果您知道圖像將是16:9或3:2(或其他標準寬高比),您可以嘗試在開關語句中將寬度和高度與某些預設值進行匹配。這是迄今爲止防彈,可能太靜態。

更新:如果需要,我添加了一個默認子句來捕獲沒有定義的比率。

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

此函數將寬度和高度作爲參數並返回高寬比值。