De esta manera lo logre yo... haciendo una regla de 3
$nombre_fichero = 'imagen.jpg';
list($ancho_or, $alto_or) = getimagesize($nombre_fichero);
$ancho1 = 500 * $ancho_or;
$ancho = $ancho1 / $alto_or;
$alto = 500;
$thumb = imagecreatetruecolor($ancho, $alto);
$origen = @imagecreatefromjpeg($nombre_fichero);
$fondo = imagecolorallocate($thumb, 255, 255, 255);
imagefilledrectangle($thumb, 0, 0, $alto_or, $ancho_or, $fondo);
if(!$origen){
$origen = imagecreatefrompng($nombre_fichero);
}
if(!$origen){
$origen = imagecreatefromgif($nombre_fichero);
}
imagecopyresampled($thumb, $origen, 0, 0, 0, 0, $ancho, $alto, $ancho_or, $alto_or);
imagejpeg($thumb,'imagen-imprimida.jpg',72);
El alto de la imagen se redimensionaria a 500 pixeles y el ancho se adapta proporcionalmente al alto de la imagen según las dimensiones originales.