2

对于我最近的项目,我想使用来自 flickr api 的图像,但是当图像进入时,大多数图像对于我放置它的地方来说太大了。我被告知要做一个 if 语句,并从来自 api 的原始图像中获取长度和宽度,然后将它们相除,然后将它们乘以所需的宽度。else 则相反(而不是宽度高度)。这是我想出的,但无法让它发挥作用。有人可以告诉我我做错了什么吗?

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;       
}
4

1 回答 1

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 的情况下重写这个函数)

于 2012-12-20T02:32:36.227 回答