Skip to main content

Introductie

Laravel biedt via de Image-facade een fluente API voor het bewerken van afbeeldingen. Bewerkingen zoals verkleinen, bijsnijden, encoderen en opslaan schrijf je op een manier die consistent is met de rest van het framework. Intern wordt Intervention Image gebruikt, met ondersteuning voor zowel de GD- als de Imagick-extensie van PHP.
Beeldverwerking kan veel CPU en geheugen verbruiken. Voer grootschalige beeldverwerking niet uit tijdens een HTTP-request, maar overweeg om die als queue-job te verwerken.
Deze functionaliteit is beschikbaar vanaf Laravel v13.20.0. Gebruik je een oudere versie, werk het framework dan bij naar de nieuwste versie met composer update.

Installatie

Installeer vóór het gebruik van de beeldbewerkingsfunctionaliteit het Intervention Image-pakket via Composer.
Controleer daarnaast dat, afhankelijk van de gebruikte driver, de GD- of Imagick-extensie van PHP is geïnstalleerd.

Configuratie

Het configuratiebestand bevindt zich in config/image.php. Bestaat het configuratiebestand niet, publiceer het dan met een Artisan-commando.
De standaarddriver stel je in via het configuratiebestand of de omgevingsvariabele IMAGE_DRIVER. De ondersteunde drivers zijn gd en imagick.

Afbeeldingen laden

De Image-facade biedt methoden om afbeeldingsinstanties uit diverse bronnen te maken. De inhoud van de afbeelding wordt lazy geladen; het daadwerkelijke laden gebeurt pas wanneer er verwerking of bytes worden opgevraagd.

Geüploade bestanden

Om een geüploade afbeelding uit het request op te halen, gebruik je de methode image. Bestaat het bestand niet, dan wordt null teruggegeven.
Wil je een instantie maken van een UploadedFile-instantie, gebruik dan de methode fromUpload.
Bij een afbeeldingsinstantie die van een geüpload bestand is gemaakt, haal je met de methode file het oorspronkelijke bestand op.

Bestanden uit storage

Om een afbeeldingsinstantie te maken van een bestand dat op een bestandssysteemdisk is opgeslagen, gebruik je de methode fromStorage. Het eerste argument is het bestandspad, het tweede de disknaam.
Je kunt er ook een maken via de methode image van de Storage-facade.

Overige bronnen

Je kunt ook afbeeldingsinstanties maken van bytes, een lokaal pad, een URL of Base64.

Afbeeldingen bewerken

Afbeeldingsinstanties zijn immutable. Elke methode geeft een nieuwe instantie terug waarbij de transformatie is toegevoegd aan de verwerkingspipeline, zodat je alles als methodchain kunt schrijven. Transformaties worden verwerkt in de volgorde waarin ze aan de pipeline zijn toegevoegd; het encoderen gebeurt aan het eind slechts één keer.

Verkleinen

Overige transformaties

Voorwaardelijke transformaties

Afbeeldingsinstanties ondersteunen de Conditionable-trait, zodat je met when / unless voorwaardelijke transformaties kunt uitvoeren.

Encoderen

Standaard wordt geëncodeerd in het oorspronkelijke formaat. Om het formaat te converteren gebruik je de volgende methoden.
Met de methode quality stel je de uitvoerkwaliteit (1-100) in.
De methode optimize is een shortcut voor formaatconversie plus kwaliteitsinstelling. De standaard is WebP met kwaliteit 70.
Je kunt het resultaat ook ophalen als bytes, Base64 of Data URI.

Opslaan

Met de methode store sla je de afbeelding op op een bestandssysteemdisk. Laravel genereert automatisch een unieke bestandsnaam en geeft het opslagpad terug.
Wil je zelf een bestandsnaam opgeven, gebruik dan storeAs.
Om op te slaan met public-zichtbaarheid gebruik je storePublicly / storePubliclyAs.
Mislukt het opslaan, dan wordt false teruggegeven.

Afbeeldingsinformatie ophalen

Met de methoden mimeType, extension, dimensions, width en height haal je informatie over de afbeelding op. Deze methoden hebben betrekking op de afbeelding ná verwerking (roep je bijvoorbeeld width() aan na cover(400, 400), dan krijg je 400 terug).

Aangepaste drivers

De imagemanager van Laravel erft over van Illuminate\Support\Manager en laat je met de methode extend aangepaste drivers registreren. Een aangepaste driver implementeert de interface Illuminate\Contracts\Image\Driver; de methode process ontvangt de oorspronkelijke afbeeldingsbytes en de pipeline en geeft de verwerkte afbeeldingsbytes terug.
De registratie doe je in de boot-methode van een serviceprovider.
Om voor een specifieke afbeelding een driver op te geven gebruik je de methode using.

Aangepaste transformaties

Je definieert aangepaste transformaties met een klasse die de interface Illuminate\Contracts\Image\Transformation implementeert.
De handler registreer je in de boot-methode van een serviceprovider.
Na registratie pas je de transformatie toe met de methode transform.
Laatst gewijzigd op 6 september 2026