Introductie
Laravel biedt via deImage-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.
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.Configuratie
Het configuratiebestand bevindt zich inconfig/image.php. Bestaat het configuratiebestand niet, publiceer het dan met een Artisan-commando.
IMAGE_DRIVER. De ondersteunde drivers zijn gd en imagick.
Afbeeldingen laden
DeImage-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 methodeimage. Bestaat het bestand niet, dan wordt null teruggegeven.
UploadedFile-instantie, gebruik dan de methode fromUpload.
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 methodefromStorage. Het eerste argument is het bestandspad, het tweede de disknaam.
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 deConditionable-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.quality stel je de uitvoerkwaliteit (1-100) in.
optimize is een shortcut voor formaatconversie plus kwaliteitsinstelling. De standaard is WebP met kwaliteit 70.
Opslaan
Met de methodestore sla je de afbeelding op op een bestandssysteemdisk. Laravel genereert automatisch een unieke bestandsnaam en geeft het opslagpad terug.
storeAs.
public-zichtbaarheid gebruik je storePublicly / storePubliclyAs.
false teruggegeven.
Afbeeldingsinformatie ophalen
Met de methodenmimeType, 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 vanIlluminate\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.
boot-methode van een serviceprovider.
using.
Aangepaste transformaties
Je definieert aangepaste transformaties met een klasse die de interfaceIlluminate\Contracts\Image\Transformation implementeert.
boot-methode van een serviceprovider.
transform.