Redimensionamento de imagem proporcional

Estou tendo um pequeno problema ao escalar minhas imagens para um tamanho adequadamente predefinido. Eu estava me perguntando - uma vez que é puramente matemática, se há algum tipo de algoritmo lógico comum que funciona em todas as linguagens (PHP, ActionScript, Javascript, etc.) para dimensionar as imagens proporcionalmente.

Estou usando isso no momento:

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

Mas isso não funciona corretamente. As imagens são dimensionadas proporcionalmente, com certeza, mas o tamanho não é definido como 300 (em largura ou em altura). Isso meio que faz sentido, mas eu estava me perguntando se existe uma maneira fácil e à prova de falhas de dimensionar as imagens proporcionalmente.

questionAnswers(6)

yourAnswerToTheQuestion