Introduzione
Laravel offre, tramite la facadeImage, un’API fluida per l’elaborazione delle immagini. Resize, crop, encoding e salvataggio possono essere descritti in modo uniforme in tutto il framework.
Internamente utilizza Intervention Image, supportando sia l’estensione PHP GD sia Imagick.
Questa funzionalità è disponibile da Laravel v13.20.0 in poi. Se usi una versione precedente, aggiorna il framework con
composer update.Installazione
Prima di usare l’elaborazione immagini, installa Intervention Image via Composer.Configurazione
Il file di configurazione si trova inconfig/image.php. Se non esiste, pubblicalo con il comando Artisan.
IMAGE_DRIVER. Sono supportati gd e imagick.
Caricare un’immagine
La facadeImage offre metodi per creare istanze di immagine da varie sorgenti. Il contenuto viene caricato in modo lazy: viene letto effettivamente solo quando serve elaborare l’immagine o produrre i byte.
File caricati
Per ottenere un’immagine caricata dalla richiesta usa il metodoimage. Se il file non c’è restituisce null.
UploadedFile usa fromUpload.
file puoi recuperare il file originale.
File dallo storage
Per creare un’immagine da un file su disco filesystem usafromStorage. Il primo argomento è il path, il secondo il nome del disco.
image della facade Storage.
Altre sorgenti
Puoi creare un’immagine anche da byte, path locale, URL o Base64.Elaborare l’immagine
Le istanze immagine sono immutabili. Ogni metodo restituisce una nuova istanza con la trasformazione aggiunta alla pipeline di elaborazione, così puoi concatenarli. Le trasformazioni vengono applicate nell’ordine in cui sono aggiunte alla pipeline e l’encoding avviene una sola volta alla fine.Resize
Altre trasformazioni
Trasformazioni condizionali
L’immagine supporta il traitConditionable, quindi puoi applicare trasformazioni condizionali con when / unless.
Encoding
Per default l’encoding usa il formato originale. Per convertire formato usa questi metodi.quality imposti la qualità di output (1-100).
optimize è una scorciatoia per conversione di formato e qualità. Il default è WebP con qualità 70.
Salvataggio
Constore salvi l’immagine su un disco filesystem. Laravel genera un nome file univoco e restituisce il path di salvataggio.
storeAs.
public usa storePublicly / storePubliclyAs.
false.
Ottenere informazioni sull’immagine
ConmimeType, extension, dimensions, width, height recuperi le informazioni. Si riferiscono all’immagine dopo l’elaborazione (ad esempio, dopo cover(400, 400), width() restituisce 400).
Driver personalizzati
L’image manager di Laravel estendeIlluminate\Support\Manager, quindi puoi registrare driver personalizzati con extend.
Un driver personalizzato implementa Illuminate\Contracts\Image\Driver e nel metodo process riceve i byte dell’immagine originale e la pipeline, restituendo i byte elaborati.
boot di un service provider.
using.
Trasformazioni personalizzate
Puoi definire trasformazioni personalizzate implementandoIlluminate\Contracts\Image\Transformation.
boot del service provider.
transform.