No sé si sea lo más adecuado. Una vez me tocó trabajar con algo similar y utilice este código:
Recuerdo que aunque subiera una imagen pequeña se adaptaba muy bien, pruebalo y nos dices.
Código PHP:
Ver original//Creamos una variable imagen a partir de la imagen original
//Se define el maximo ancho o alto que tendra la imagen final
$max_ancho = 1280;
$max_alto = 800;
//Ancho y alto de la imagen original
//Creamos una imagen en blanco de tamaño $ancho_final por $alto_final .
//Copiamos $img_original sobre la imagen que acabamos de crear en blanco ($tmp)
//Se destruye variable $img_original para liberar memoria
//Definimos la calidad de la imagen final
$calidad=100;
//Se crea la imagen final en el directorio indicado
Edito. Los parámetros de imagejpeg son (ruta temporal, ruta donde se moverá, calidad de la imagen)