Proporcjonalna zmiana rozmiaru obrazu

Mam mały problem ze skalowaniem moich obrazów do odpowiednio predefiniowanego rozmiaru. Zastanawiałem się - ponieważ jest to czysto matematyka, jeśli istnieje jakiś wspólny logiczny algorytm, który działa w każdym języku (PHP, ActionScript, Javascript itp.), Aby proporcjonalnie skalować obrazy.

Używam tego w tej chwili:

var maxHeight   = 300;
var maxWidth    = 300;

var ratio:Number    =   height / width;

if (height > maxHeight) {
    height = maxHeight;
    width = Math.round(height / ratio);
} 

else if(width > maxWidth) {
    width = maxWidth;
    height = Math.round(width * ratio);
}

Ale to nie działa prawidłowo. Obrazy skalują się proporcjonalnie, oczywiście, ale rozmiar nie jest ustawiony na 300 (zarówno w szerokości, jak i wysokości). Ma to sens, ale zastanawiałem się, czy istnieje proporcjonalny, łatwy w obsłudze i prosty sposób skalowania obrazów.

questionAnswers(6)

yourAnswerToTheQuestion