Алгоритм изменения размера изображения и сохранения соотношения сторон экрана для соответствия iPhone

Я создаю веб-службу для взаимодействия с приложением iPhone.

Когда мой клиент загружает изображения на стороне сервера, я хочу, чтобы мой php-скрипт изменял размер изображения , сохраняя при этом соотношение сторон , чтобы оно поместилось на экране iPhone. (т.е. самая длинная сторона - <= 960, а самая короткая - <= 640

Я создал макет на JS просто потому, что мне легче сделать это быстро.

Я почти уверен, хотя я может ошибаться, что это не самый эффективный способ сделать это. Может ли кто-нибудь исправить меня либо лучшей логикой (особенно бит в начале), либо более математическим подходом к этому?

var w = 960, h = 960, new_w, new_h;
if (w >= h && w > 960 || h >= w && h > 960 || w >= h && h > 640 || h >= w && w > 640) {
    if (w > h) {
        if (w>960) {
            new_w = 960;
            new_h = h*(new_w/w);
        }
        if (h>640) {
            new_h = 640;
            new_w = w*(new_h/h);
        }
    }
    else {
        if (h>960) {
            new_h = 960;
            new_w = w*(new_h/h);
        }
        if (w>640) {
            new_w = 640;
            new_h = h*(new_w/w);
        }
    }
}
11
задан Alex Coplan 11 July 2012 в 23:58
поделиться