aqui te dejo una funcion solo ingresas $img_original =direccion de la imagen a redimensionar $img_nueva direccion donde se guardara la imagen redimensionada
$img_nueva_calidad es la calidad de la imagen yo pongo 75.
Código PHP:
function redimensionar_jpeg($img_original, $img_nueva, $img_nueva_calidad)
{
// crear imagen desde original
$img = imagecreatefromjpeg($img_original);
// redimensionar imagen original copiandola en la imagen
$anchura=800;//aqui pones el ancho que quieras
$hmax=600;// al alto que quieras
$datos = getimagesize($img_original);
if($datos[2]==1){$img = @imagecreatefromgif($img_original);}
if($datos[2]==2){$img = @imagecreatefromjpeg($img_original);}
if($datos[2]==3){$img = @imagecreatefrompng($img_original);}
$ratio = ($datos[0] / $anchura);
$altura = ($datos[1] / $ratio);
if($altura>$hmax)
{
$anchura2=$hmax*$anchura/$altura;
$altura=$hmax;$anchura=$anchura2;
}
$thumb = imagecreatetruecolor($anchura,$altura);
imagecopyresampled($thumb, $img, 0, 0, 0, 0, $anchura, $altura, $datos[0], $datos[1]);
// guardar la imagen redimensionada donde indica $img_nueva
imagejpeg($thumb,$img_nueva,$img_nueva_calidad);
}