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 に答える