2012-12-20 40 views
2

對於我最近的項目,我想使用flickr api的圖像,但是當圖像進入大多數圖像對於我擁有它的地方來說太大了。我被告知要製作一條if語句,並從api到達的原始圖像中獲得長度和寬度,然後將它們分開,然後將它們乘以所需的寬度。其他的是相反的(而不是寬度高度)。這是我想出來的,但無法實現。有人能告訴我我做錯了什麼嗎?如何自動調整flickr api的照片大小?

var dimensions = getDimensions(photos[p].width_m, photos[p].height_m); 
var m1window = addWindow(photos[p].title, photos[p].url_m, dimensions[0], dimensions[1]); 

function getDimensions(w, h) { 
    var array = [wi, he]; 
    var he; 
    var wi; 
    if (wi > he) { 
     wi = 100; 
     he = w/h*100; 
    } else { 
     wi = w/h*100; 
     he = 100; 
    }  
    return array;  
} 
+0

我只是得到更接近你想要的分辨率的圖像,並處理與CSS調整大小。 – elclanrs

+0

嘗試'he =(w/h)* 100;'和'wi =(w/h)* 100;'因爲您需要先進行分割。 – arttronics

+0

我該怎麼做?我如何過濾結果到所需的尺寸。 – IvanNewYork

回答

1

我不知道如果我理解你的問題,但如果你的問題是,您需要將圖像尺寸調整到具有最大寬度和高度一定的容器,那麼我認爲你想要的是這樣的功能(使用JQuery):

function resizeImage($image, maxHeight, maxWidth){ 
    var ratio=1; 
    var ratiox=1; 
    var ratioy=1;  
    var imgWidth=$image.width();  
    var imgHeight=$image.height(); 

    if(imgWidth> maxWidth){ 
     ratiox=maxWidth/imgWidth; 
    } 
    if(imgHeight> maxHeight){ 
     ratioy=maxHeight/imgHeight; 
    } 
    ratio = (ratiox>ratioy)?ratioy:ratiox; 
    $image.width(imgWidth*ratio); 
    $image.height(imgHeight*ratio); 
} 

的jsfiddle例如: http://jsfiddle.net/8uJbY/2/

(如果這是你所需要的,但你不能使用JQuery我可以重寫這個功能沒有JQuery)

+0

** + 1 **優秀的答案和縱橫比也! ;-) – arttronics

+0

@ arttronics修復,謝謝! – Josep