Showing 1 result for the tag: tamaño.

27

Mar

2005

7

Resizeador de imagenes (II)

reloj18:24 calendarioCategorías: PHP

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 🙂