27
Mar
2005
Resizeador de imagenes (II)
Como ya sabéis, ando haciendo una galería para otra web, por lo que me hice una función para cambiar el tamaño fácilmente, y he pensado en compartirla, porque fijo que a alguno os viene bien…
< ?
function resizear_imagen ($imagen,$img_anch_max,$img_alto_max){
$extension = explode(".",imagen);
$num = count($extension)-1;
$extension = $extension[$num];
$extension = strtolower($extension);
switch ($extension){
case "jpg": if (ImageCreateFromJpeg($imagen)) { $img = ImageCreateFromJpeg($imagen); } else { $errores = "Si"; } break;
case "jpeg": if (ImageCreateFromJpeg($imagen)) { $img = ImageCreateFromJpeg($imagen); } else { $errores = "Si"; } break;
case "gif": if (ImageCreateFromGif($imagen)) { $img = ImageCreateFromGif($imagen); } else { $errores = "Si"; } break;
case "png": if (ImageCreateFromPng($imagen)) { $img = ImageCreateFromPng($imagen); } else { $errores = "Si"; } break;
}
//CALCULO LAS PROPORCIONES
$prop_imagen = getimagesize($imagen);
$ancho = $prop_imagen[0];
$alto = $prop_imagen[1];
if ($ancho >= $alto){
$proporcion = $ancho/$alto;
$ancho_dev = $img_anch_max;
$alto_dev = $ancho_dev/$proporcion;
if ($alto_dev > $img_alto_max){
$alto_dev = $img_alto_max;
$ancho_dev = $alto_dev * $proporcion;
}
} else {
$proporcion = $alto/$ancho;
$alto_dev = $img_alto_max;
$ancho_dev = $alto_dev/$proporcion;
if ($ancho_dev > $img_anch_max){
$ancho_dev = $img_anch_max;
$alto_dev = $ancho_dev * $proporcion;
}
}
//CREO LA IMAGEN DEVUELTA
$image = imagecreatetruecolor($ancho_dev, $alto_dev);
ImageCopyResized($image, $img, 0, 0, 0, 0, $ancho_dev, $alto_dev, $ancho, $alto);
if ($errores == "Si"){
return "";
} else{
return $image;
}
}
?>
Espero comentarios y demás 🙂