Esta siempre ocupo me anda bien
Código PHP:
Ver originalfunction redimensionar_imagen($imagen, $nombre_imagen_asociada)
{
//indicamos el directorio donde se van a colgar las imágenes
$directorio = 'tmp/' ;
//establecemos los límites de ancho y alto
$nuevo_ancho = 570 ;
$nuevo_alto = 300 ;
//Recojo información de la imágen
$alto = $info_imagen[1];
$ancho = $info_imagen[0];
$tipo_imagen = $info_imagen[2];
//Determino las nuevas medidas en función de los límites
if($ancho > $nuevo_ancho OR $alto > $nuevo_alto)
{
if(($alto - $nuevo_alto) > ($ancho - $nuevo_ancho))
{
$nuevo_ancho = round($ancho * $nuevo_alto / $alto,0) ; }
else
{
$nuevo_alto = round($alto * $nuevo_ancho / $ancho,0); }
}
else //si la imagen es más pequeña que los límites la dejo igual.
{
$nuevo_alto = $alto;
$nuevo_ancho = $ancho;
}
// dependiendo del tipo de imagen tengo que usar diferentes funciones
switch ($tipo_imagen) {
case 1: //si es gif …
$imagen_nueva = imagecreate($nuevo_ancho, $nuevo_alto); //cambio de tamaño…
imagecopyresampled($imagen_nueva, $imagen_vieja, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $ancho, $alto); if (!imagegif($imagen_nueva, $directorio . $nombre_imagen_asociada)) return false; break;
case 2: //si es jpeg …
//cambio de tamaño…
imagecopyresampled($imagen_nueva, $imagen_vieja, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $ancho, $alto); if (!imagejpeg($imagen_nueva, $directorio . $nombre_imagen_asociada)) return false; break;
case 3: //si es png …
//cambio de tamaño…
imagecopyresampled($imagen_nueva, $imagen_vieja, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $ancho, $alto); if (!imagepng($imagen_nueva, $directorio . $nombre_imagen_asociada)) return false;
break;
}
return true; //si todo ha ido bien devuelve true
}