我有一個高度和寬度值兩個變量,就像這樣:如何計算圖像方面的高度/寬度
var height = 1080
var width = 1920
我知道我對做width/height
得到比這給我的東西像這樣:1.7794253938832252
時遇到的問題是我想要得到的方面高度/寬度,最終欲得到16:9
或3:2
純粹基於所述高度和圖像的寬度的值。我不想調整它的大小,我只是想知道它應該基於高度和寬度的值。
我該如何計算?
我有一個高度和寬度值兩個變量,就像這樣:如何計算圖像方面的高度/寬度
var height = 1080
var width = 1920
我知道我對做width/height
得到比這給我的東西像這樣:1.7794253938832252
時遇到的問題是我想要得到的方面高度/寬度,最終欲得到16:9
或3:2
純粹基於所述高度和圖像的寬度的值。我不想調整它的大小,我只是想知道它應該基於高度和寬度的值。
我該如何計算?
如果您知道圖像將是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);
首先找到高度和寬度之間的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));
此函數將寬度和高度作爲參數並返回高寬比值。
把它變成整數並找出最小公分母。那一個應該是'17794253938832252:10000000000000000',你可以做最小公分母比特(它來自GCSE水平數學)。 – ggdx
可以是(16/9-寬度/高度)^ 2 ::(3/2寬度/高度)^ 2 –