Tamaño de imagen proporcional

Estoy teniendo un pequeño problema al escalar mis imágenes a un tamaño predefinido correctamente. Me preguntaba: ya que es puramente matemático, si hay algún tipo de algoritmo lógico común que funcione en todos los idiomas (PHP, ActionScript, Javascript, etc.) para escalar las imágenes proporcionalmente.

Estoy usando esto en este 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);
}

Pero no funciona correctamente. Las imágenes se escalan proporcionalmente, lo suficientemente seguro, pero el tamaño no está establecido en 300 (ya sea en ancho o en alto). Tiene sentido, pero me preguntaba si hay una manera fácil y sencilla de escalar las imágenes proporcionalmente.

Respuestas a la pregunta(6)

Su respuesta a la pregunta