...
✅ WEB- und WordPress-Nachrichten, Themen, Plugins. Hier teilen wir Tipps und beste Website-Lösungen.

Bildgröße in PHP mit Intervention Image Library ändern

107

Suchen Sie nach Möglichkeiten zum Ändern der Größe von Bildern in PHP? Während der Arbeit an der Webanwendung müssen wir verschiedene Miniaturansichten des Originalbilds erstellen. Das Thumbnail ist die skalierte Version Ihres Originalbildes. In diesem Artikel untersuchen wir, wie Sie Bilder in PHP hochladen und skalieren.

Warum sollten wir die Größe von Bildern ändern?

Auf der Website gibt es mehrere Szenarien, in denen wir eine kurze Version eines großen Bildes anzeigen müssen. Ein beliebtes Beispiel ist die Bildergalerie. In der Galerie haben wir früher eine Liste mit kleinen Bildern angezeigt. Wenn ein Benutzer auf das kleine Bild klickt, wird das große Bild im Popup geöffnet. Ein weiteres Beispiel ist die Anzeige verwandter Artikel, in denen wir kleine Bilder zusammen mit dem Titel und der Beschreibung eines Beitrags anzeigen.

In diesen Szenarien müssen wir ein kleines Bild (Thumbnail) mit unserem Originalbild generieren. Ein kleines Thumbnail reduziert die Größe Ihrer Seiten. Da Sie ein kleines Thumbnail verwenden, benötigt der Browser eine geringe Bandbreite zum Laden des Bildes. Es wird der Website einige Vorteile hinzufügen. Einige von ihnen sind:

  • Verbessert die Serverleistung
  • Bandbreite reduzieren
  • Seitengeschwindigkeit verbessern

Sehen wir uns jedoch an, wie Sie die Größe des Bildes in PHP ändern.

Einstieg

Intervention Image ist eine Open-Source-Bibliothek, die als Tool zur Größenänderung von Bildern fungiert. Unter der Haube verwendet Intervention Image GD Library und Imagick für die Bildverarbeitung und -manipulation.

Um zu beginnen, müssen Sie die Intervention Image-Bibliothek in Ihrer Anwendung installieren. Ich empfehle Composer für die Installation einer Bibliothek.

Öffnen Sie das Terminal in Ihrem Projektstammverzeichnis und führen Sie den folgenden Befehl aus.

composer require intervention/image

Nach der Installation der Bibliothek müssen Sie deren Umgebung in Ihre Anwendung einbeziehen. Fügen Sie dazu unten zwei Zeilen in die PHP-Datei ein.

<?php
// include composer autoload
require 'vendor/autoload.php';
  
use InterventionImageImageManagerStatic as Image;

Um das Bild hochzuladen und die Größe zu ändern, benötigen wir ein Formular, in dem man das Bild durchsuchen und auf die Schaltfläche "Senden" klicken kann. Verwenden Sie den folgenden HTML-Code, der die Dateieingabe und eine Schaltfläche zum Senden enthält.

<form method="post" enctype="multipart/form-data">
    <p><input type="file" name="image" /></p>
    <input type="submit" name="submit" value="Submit">
</form>

Bildgröße in PHP mit Interventionsbild ändern

Wir haben die Bibliothek installiert und ein Formular erstellt. Als nächstes müssen wir das Bild im laufenden Betrieb hochladen und die Größe ändern. Ich werde zwei Verzeichnisse erstellen uploadsund thumbnails. In dem uploadsOrdner speichern wir das Originalbild. Die Miniaturansicht des Bildes wird im thumbnailsVerzeichnis gespeichert .

Verwenden Sie den folgenden Code, der die Original- und Miniaturversion des Bildes in den Verzeichnissen uploadsund speichert thumbnails.

<?php
require 'vendor/autoload.php';
  
use InterventionImageImageManagerStatic as Image;
 
$allowed_mime_type = array('image/jpg', 'image/jpeg', 'image/png', 'image/gif');
 
if (isset($_POST['submit'])) {
 
    if (in_array($_FILES['image']['type'], $allowed_mime_type)) {
 
        if (!file_exists('uploads')) {
            mkdir('uploads', 0755);
        }
 
        $filename = time().'_'.$_FILES['image']['name'];
        $filepath = 'uploads/'. $filename;
        move_uploaded_file($_FILES['image']['tmp_name'], $filepath);
 
        if (!file_exists('uploads/thumbnails')) {
            mkdir('uploads/thumbnails', 0755);
        }
 
        $thumbnailpath = 'uploads/thumbnails/'. $filename;
        $img = Image::make($filepath);
        $img->resize(300, null, function ($constraint) {
            $constraint->aspectRatio();
        });
        $img->save($thumbnailpath);
    }
}

Im obigen Code habe ich die Breite als 300 übergeben und die Größe des Bildes geändert, indem ich das Seitenverhältnis beibehalten habe. Sie können den Breitenwert gemäß Ihren Anforderungen übergeben. Es wird empfohlen, das Seitenverhältnis beizubehalten, wenn Sie die Bildgröße ändern. Bei Verwendung des Seitenverhältnisses wird das Bild nicht gestreckt. Wenn Sie jedoch nach einer harten Ernte suchen, ersetzen Sie die folgenden Zeilen

$img->resize(300, null, function ($constraint) {
    $constraint->aspectRatio();
});

Mit

$img->resize(300, 150)->save($thumbnailpath);

Fazit

In diesem Tutorial haben wir untersucht, wie Sie die Größe von Bildern ändern, indem Sie ihr Seitenverhältnis beibehalten. Wir haben auch einen Code geschrieben, der das Bild hart zuschneidet. Die Interventionsbildbibliothek bietet einige weitere Optionen für eine resizeMethode. Sie können mehr darüber in ihrer Dokumentation lesen .

Zum Thema passende Artikel

Aufnahmequelle: artisansweb.net

Diese Website verwendet Cookies, um Ihre Erfahrung zu verbessern. Wir gehen davon aus, dass Sie damit einverstanden sind, Sie können sich jedoch abmelden, wenn Sie möchten. Annehmen Weiterlesen