miércoles, 20 de septiembre de 2017

Cómo redimensionar imagenes en PHP

Hay varias alternativas ya disponibles en el medio.  Antes de poner en funcionamiento el que yo propongo, pueden probar algunos de los que ya existen en el medio.

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.

7 razones para no usar Laravel en tu proyecto de PHP

En más de 40 años de experiencia como programador y director de proyectos de programación, he aprendido que cada requerimiento tiene mejores...