Introduction
Laravel expose, via la façadeImage, une API fluide de traitement d’images. Le redimensionnement, le recadrage, l’encodage ou la sauvegarde s’écrivent de manière homogène sur l’ensemble du framework.
En interne, la façade s’appuie sur Intervention Image et prend en charge à la fois les extensions PHP GD et Imagick.
Cette fonctionnalité est disponible à partir de Laravel v13.20.0. Si vous utilisez une version plus ancienne, mettez le framework à jour avec
composer update.Installation
Avant d’utiliser le traitement d’images, installez le package Intervention Image via Composer.Configuration
Le fichier de configuration estconfig/image.php. S’il n’existe pas, publiez-le via la commande Artisan.
IMAGE_DRIVER. Les drivers pris en charge sont gd et imagick.
Charger une image
La façadeImage propose plusieurs méthodes pour créer une instance d’image depuis diverses sources. Le contenu de l’image est chargé de façon paresseuse : il n’est effectivement lu qu’au moment du traitement ou de la demande des octets.
Fichier téléversé
Pour récupérer une image téléversée depuis la requête, utilisez la méthodeimage. Si le fichier est absent, null est renvoyé.
UploadedFile, utilisez fromUpload.
file permet de récupérer le fichier d’origine.
Fichier du stockage
Pour créer une instance à partir d’un fichier situé sur un disque de système de fichiers, utilisezfromStorage. Le premier argument est le chemin, le second le nom du disque.
image.
Autres sources
Vous pouvez aussi partir d’octets, d’un chemin local, d’une URL ou d’une chaîne Base64.Transformer une image
Les instances d’image sont immuables. Chaque méthode renvoie une nouvelle instance dans laquelle la transformation a été ajoutée au pipeline de traitement, ce qui permet le chaînage. Les transformations sont appliquées dans l’ordre d’ajout, et l’encodage n’est effectué qu’à la toute fin.Redimensionnement
Autres transformations
Transformations conditionnelles
Les instances d’image supportent le traitConditionable : when / unless permettent d’appliquer des transformations sous condition.
Encodage
Par défaut, l’encodage utilise le format d’origine. Pour convertir vers un autre format, utilisez :quality fixe la qualité de sortie (1 à 100).
optimize est un raccourci pour convertir le format et définir la qualité. Par défaut : WebP, qualité 70.
Enregistrer une image
La méthodestore sauvegarde l’image sur un disque de fichiers. Laravel génère un nom unique et renvoie le chemin où l’image a été enregistrée.
storeAs.
public, utilisez storePublicly / storePubliclyAs.
false est renvoyé.
Obtenir des informations sur l’image
Les méthodesmimeType, extension, dimensions, width et height renvoient des informations sur l’image telle qu’elle sera après traitement (par exemple, après cover(400, 400), width() renvoie 400).
Drivers personnalisés
Le gestionnaire d’images de Laravel hérite deIlluminate\Support\Manager : la méthode extend permet d’enregistrer un driver personnalisé.
Le driver doit implémenter l’interface Illuminate\Contracts\Image\Driver. Sa méthode process reçoit les octets d’origine et le pipeline, et renvoie les octets de l’image traitée.
boot d’un service provider.
using.
Transformations personnalisées
Vous pouvez définir une transformation personnalisée en implémentant l’interfaceIlluminate\Contracts\Image\Transformation.
boot d’un service provider.
transform.