Algorithmus, um die Größe Bild und das Seitenverhältnis beizubehalten, passen iPhone

Ich bin erstellen einer web-service für ein iPhone app zu interagieren.

Wenn mein client uploads images server-Seite, ich möchte mein php-Skript zum ändern der Bildgröße, unter Beibehaltung des Seitenverhältnisses, so dass es passt auf dem iPhone-Bildschirm. (also die längste Seite ist <= 960 und die kürzeste <= 640

Habe ich ein mock-up in JS, einfach, weil ich finde es einfacher zu tun schnell.

Ich bin mir ziemlich sicher, obwohl ich falsch sein kann, dass dies nicht der effizienteste Weg, es zu tun. Könnte jemand korrigieren Sie mich, mit entweder bessere Logik (besonders das Stück am start), oder eine mathematische Möglichkeit, dies zu erreichen?

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);
        }
    }
}
Das einzige problem dort ist Sie sofort handeln, nachdem Sie überprüfen, w>960, und davon ausgehen, dass new_h=h*(new_w/w) <=640, die kann oder kann nicht wahr sein. Sie müssen prüfen, Schranken für die beiden ersten.

InformationsquelleAutor Alex Coplan | 2011-10-23

Schreibe einen Kommentar