Te paso una función para obtener dimensiones proporcionales en base al tamaño real y al máximo que puede tomar ( siempre que sea menor al real ).
Código PHP:
Ver originalfunction getNewSize($w, $h, $lw, $lh) {
//obtain an new size from start, max dimesions
if($w > $lw) {
$percent = ($lw * 100) / $w;
$w = $lw;
$h = $h * ($percent / 100);
}
if($h > $lh) {
$percent = ($lh * 100) / $h;
$h = $lh;
$w = $w * ($percent / 100);
}
return array('w' => $w, 'h' => $h); }
Los parámetros son: $w y $h tamaño real ( en este caso, el de tu imagen) y $lw, $lh son el tamaño máximo que puede tomar.