Código de la función para hacer la redimensión:
public function redimensionar_imagen($nombreimg, $rutaimg, $xmax, $ymax){
$ext = explode(".", $nombreimg);
$ext = $ext[count($ext)-1];
if($ext == "jpg" || $ext == "jpeg")
$imagen = imagecreatefromjpeg($rutaimg);
elseif($ext == "png")
$imagen = imagecreatefrompng($rutaimg);
elseif($ext == "gif")
$imagen = imagecreatefromgif($rutaimg);
$x = imagesx($imagen);
$y = imagesy($imagen);
if($x <= $xmax && $y <= $ymax){
//return "<center>Esta imagen ya esta optimizada para los maximos que deseas.<center>";
return $imagen;
}
if($x >= $y) {
$nuevax = $xmax;
$nuevay = $nuevax * $y / $x;
}
else {
$nuevay = $ymax;
$nuevax = $x / $y * $nuevay;
}
$img2 = imagecreatetruecolor($nuevax, $nuevay);
imagecopyresized($img2, $imagen, 0, 0, 0, 0, floor($nuevax), floor($nuevay), $x, $y);
//return "<center>La imagen se ha optimizado correctamente.</center>";
return $img2;
}
Y para llamar la función:
$nombre='imagen1';
$Path='img/section/immagen.jpg';
$alto=450;
$ancho=450;
$imagen_optimizada = $f->redimensionar_imagen($nombre, $Path, $alto, $ancho);
Sólo es llamar la función y pasarle los parámetros de Nombre, ruta física del archivo en el servidor, alto y ancho deseados al final.