Einführung
Laravel stellt über dieImage-Facade eine fluente API zur Bildbearbeitung bereit. Operationen wie Skalieren, Zuschneiden, Kodieren und Speichern lassen sich damit einheitlich innerhalb des Frameworks ausdrücken.
Intern kommt Intervention Image zum Einsatz, das sowohl die PHP-Extension GD als auch Imagick unterstützt.
Diese Funktion steht ab Laravel v13.20.0 zur Verfügung. Wenn Sie eine ältere Version verwenden, aktualisieren Sie das Framework mit
composer update auf die neueste Version.Installation
Bevor Sie die Bildbearbeitungsfunktionen nutzen können, installieren Sie das Paket Intervention Image über Composer.Konfiguration
Die Konfigurationsdatei liegt unterconfig/image.php. Wenn sie noch nicht vorhanden ist, veröffentlichen Sie sie mit dem Artisan-Befehl.
IMAGE_DRIVER festgelegt werden. Unterstützte Treiber sind gd und imagick.
Bilder laden
DieImage-Facade bietet Methoden zum Erzeugen von Bildinstanzen aus verschiedenen Quellen. Der Inhalt eines Bildes wird verzögert geladen und daher erst dann tatsächlich gelesen, wenn eine Verarbeitung oder Bytes angefordert werden.
Hochgeladene Dateien
Um ein aus dem Request hochgeladenes Bild zu erhalten, verwenden Sie die Methodeimage. Falls die Datei nicht existiert, wird null zurückgegeben.
UploadedFile-Instanz verwenden Sie die Methode fromUpload.
file die ursprüngliche Datei bereit.
Dateien aus dem Storage
Um eine Bildinstanz aus einer auf einem Filesystem-Disk gespeicherten Datei zu erzeugen, verwenden Sie die MethodefromStorage. Das erste Argument ist der Dateipfad, das zweite der Disk-Name.
image-Methode der Storage-Facade erzeugen.
Weitere Quellen
Bildinstanzen können auch aus Byte-Strings, lokalen Pfaden, URLs oder Base64 erzeugt werden.Bildbearbeitung
Bildinstanzen sind unveränderlich (immutable). Jede Methode fügt eine Transformation zur Verarbeitungspipeline hinzu und liefert eine neue Instanz zurück, sodass sich Methoden verketten lassen. Transformationen werden in der Reihenfolge angewendet, in der sie der Pipeline hinzugefügt wurden; das Kodieren erfolgt am Ende genau einmal.Skalieren
Weitere Transformationen
Bedingte Transformationen
Bildinstanzen unterstützen denConditionable-Trait, sodass sich mit when / unless bedingte Transformationen ausdrücken lassen.
Kodierung
Standardmäßig wird im ursprünglichen Format kodiert. Zum Konvertieren des Formats verwenden Sie die folgenden Methoden.quality können Sie die Ausgabequalität (1–100) festlegen.
optimize ist ein Shortcut für Formatkonvertierung und Qualitätseinstellung. Voreinstellung sind WebP und Qualität 70.
Speichern
Mit der Methodestore speichern Sie ein Bild auf einer Filesystem-Disk. Laravel generiert automatisch einen eindeutigen Dateinamen und gibt den Speicherpfad zurück.
storeAs.
public zu speichern, verwenden Sie storePublicly / storePubliclyAs.
false zurückgegeben.
Bildinformationen abfragen
Mit den MethodenmimeType, extension, dimensions, width und height erhalten Sie Informationen zum Bild. Diese Methoden beziehen sich auf das bereits verarbeitete Bild (Beispiel: nach cover(400, 400) liefert width() den Wert 400).
Benutzerdefinierte Treiber
Der Image-Manager von Laravel erweitertIlluminate\Support\Manager. Über die Methode extend lassen sich eigene Treiber registrieren.
Ein benutzerdefinierter Treiber implementiert das Interface Illuminate\Contracts\Image\Driver und erhält in der Methode process die ursprünglichen Bild-Bytes sowie die Pipeline und gibt die verarbeiteten Bild-Bytes zurück.
boot-Methode eines Service Providers.
using.
Benutzerdefinierte Transformationen
Über eine Klasse, die das InterfaceIlluminate\Contracts\Image\Transformation implementiert, können Sie eigene Transformationen definieren.
boot-Methode eines Service Providers.
transform an.