Ok, funciona perfectamente pero hay un detalle mal. Tal y como esta dispuesta la funcion, $w representa el alto de la nueva imagen y no el alto. Para solucionarlo, solo hay que modificar estas lineas de código:
Código PHP:
$new_w = $w;
/* A través del cociente entre el alto y el cociente entre la anchura original y la anchura nueva, mantenemos las proporciones de la imágen.*/
$new_h = $hw["0"]/($hw["1"]/$w);
Cambiandolas por esto:
Código PHP:
$new_h = $w;
/* A través del cociente entre el alto y el cociente entre la anchura original y la anchura nueva, mantenemos las proporciones de la imágen.*/
$new_w = $hw["1"]/($hw["0"]/$w);
Una tonteria, pero para los detallistas....