Introducción
Laravel ofrece una API fluida de procesamiento de imágenes a través de la fachadaImage. Puedes describir operaciones como redimensionar, recortar, codificar o guardar con una notación coherente en todo el framework.
Internamente utiliza Intervention Image, que soporta tanto la extensión GD como la extensión Imagick de PHP.
Esta funcionalidad está disponible desde Laravel v13.20.0. Si utilizas una versión anterior, actualiza el framework a la última con
composer update.Instalación
Antes de usar el procesamiento de imágenes, instala el paquete Intervention Image con Composer.Configuración
El archivo de configuración se ubica enconfig/image.php. Si no existe, publícalo con el comando Artisan.
IMAGE_DRIVER. Los drivers soportados son gd e imagick.
Cargar imágenes
La fachadaImage ofrece métodos para crear una instancia de imagen desde diversas fuentes. El contenido de la imagen se carga de forma perezosa, así que no se lee realmente hasta que se solicita el procesamiento o los bytes.
Archivo subido
Para obtener una imagen enviada desde una petición, usa el métodoimage. Si el archivo no existe, devuelve null.
UploadedFile, usa fromUpload.
file te permite recuperar el archivo original.
Archivo del storage
Para crear una instancia a partir de un archivo guardado en un disco del sistema de archivos, usafromStorage. El primer argumento es la ruta y el segundo, el nombre del disco.
image de la fachada Storage.
Otras fuentes
También puedes crear una instancia a partir de bytes, una ruta local, una URL o Base64.Procesar la imagen
Las instancias de imagen son inmutables. Cada método devuelve una nueva instancia con la transformación añadida al pipeline de procesamiento, así que puedes encadenarlas. Las transformaciones se aplican en el orden en que se añaden al pipeline y la codificación se realiza una sola vez al final.Redimensionado
Otras transformaciones
Transformaciones condicionales
Las instancias de imagen soportan el traitConditionable, que permite transformaciones condicionales con when / unless.
Codificación
Por defecto se codifica en el formato original. Para cambiar de formato:quality puedes fijar la calidad de salida (1–100).
optimize es un atajo para el cambio de formato y el ajuste de calidad. Por defecto usa WebP con calidad 70.
Guardar
Con el métodostore guardas la imagen en un disco del sistema de archivos. Laravel genera automáticamente un nombre único y devuelve la ruta de guardado.
storeAs.
public, usa storePublicly / storePubliclyAs.
false.
Obtener información de la imagen
Con los métodosmimeType, extension, dimensions, width y height puedes consultar la información de la imagen. Estos métodos operan sobre la imagen ya procesada (por ejemplo, tras cover(400, 400), llamar a width() devuelve 400).
Drivers personalizados
El gestor de imágenes de Laravel extiendeIlluminate\Support\Manager, así que puedes registrar drivers personalizados con el método extend.
Un driver personalizado implementa la interfaz Illuminate\Contracts\Image\Driver, y en el método process recibe los bytes originales y el pipeline y devuelve los bytes procesados.
boot de un service provider.
using.
Transformaciones personalizadas
Puedes definir transformaciones personalizadas con una clase que implemente la interfazIlluminate\Contracts\Image\Transformation.
boot de un service provider.
transform.