Reducir el tamaño y peso de una imagen

Escalar el tamaño y peso de una imagen con Intervention Image

Publicado en Laravel 2018-01-28 16:00:04

Reducir el tamaño y peso de una imagen

Escalar una imagen en Laravel

Diseño Web Laravel Php

Resumen: Laravel nos proporciona una forma fácil y eficiente usando Image Intervention , para gestionar el tamaño y peso de una imagen

En el desarrollo web la imágenes son una parte muy esencial en la comunicación con el usuario, por ello es necesario tener buenas prácticas de desarrollo web, muy cuidadosas y más aún cuando se trata de imágenes.

  • El tamaño es cuan grande es un imagen.
  • El peso es la cantidad de Kb ó Mb que tiene la imagen.

Pues bien, en Laravel se puede usar una librería "Image Intervention" para la gestión de imágenes; el siguiente script nos permite:

  1. Reducir el peso
  2. Reducir el tamaño
  3. Renombrar la imagen
  4. Salvarlo en una ruta del servidor

Instalación con Composer :

Para instalar dicha librería debemos tener instalado Composer y digitar el siguiente comando Artisan:

composer require intervention/image

Después de que haya instalado, abra su archivo de configuración de Laravel config/app.php y agregue las siguientes líneas. En el array $providers, agregue los proveedores de servicios para este paquete.

Comando Artisan

Intervention\Image\ImageServiceProvider::class

Agregue el facade de este paquete al array $aliases:

Comando Artisan

'Image' => Intervention\Image\Facades\Image::class

Luego tenemos que publicar en Laravel para sus dependencias :

Comando Artisan

 php artisan vendor:publish --provider="Intervention\Image\ImageServiceProviderLaravel5"

 


La implementación del código:

En un controlador dentro del método Store o Edit puede ser de la siguiente manera:

if ($request->hasFile('urlfoto')){
                $urlfoto    = $request->file('urlfoto');
                $nombre     = 'nuevonombre'.$urlfoto->guessExtension();
                $ruta=public_path('/img/'.$nombre);
                Image::make($urlfoto->getRealPath())
                    ->resize(600,400, function ($constraint){ 
                        $constraint->aspectRatio();
                    })
                    ->save($ruta,72);
            }

 

Reducir el tamaño y peso de una imagen

Redacción:| Artículo leído: 266 veces | Publicación:


Compártelo con tus amigos


Publicaciones relacionadas de Laravel