Sie sind hier: Startseite -> PHP-Grundlagen -> Vorschaubild (imagejpeg)

Vorschaubild in PHP mit imagejpeg anlegen

Aus dem hochgeladenen Bild eine kleine Vorschau basteln

Im ersten Schritt haben wir uns angeschaut, wie das hochgeladene Bild per Name und Pfad erkannt werden kann und haben das Bild, von dem wir ausgehen, dass es 400 x 400 Pixel groß ist, auf dem Server an gewünschter Stelle gespeichert. Mit einer Abfrage oder Pfadangabe der Webseite könnte man sich das Bild jetzt anschauen.

Der zweite Schritt ist jener, dass man aus diesem Bild ein Vorschaubild erzeugen möchte, etwa für eine Produktansicht, für eine Zwischenseite mit neuen Immobilien oder jede andere Form von Webseite, die mit Bildern arbeitet. Es würde enorme Ladezeiten bedeuten, wenn viele Bilder im Original angezeigt werden und der Platz ist meistens auch nicht da.

Ein Vorschaubild auf Basis eines hochgeladenen Bildes erzeugen

Das Bild ist also schon hochgeladen und 400 x 400 Pixel groß. Damit ist aber nur die halbe Miete erreicht, denn in diesem Praxisbeispiel möchte wir ohne Zutun ein Vorschaubild in der Größe von 100 x 100 Pixel haben. Zur Erinnerung der Quellcode des Beispieles.

<?php
$bild_name = $_FILES["bild"]["name"];
$original = $_FILES["bild"]["tmp_name"];
copy ($original, "Pfad zum Verzeichnis/$bild_name");
$image_p = imagecreatetruecolor(100, 100);
$image = imagecreatefromjpeg("Pfad zum Verzeichnis/$bild_name");
imagecopyresampled($image_p, $image, 0, 0, 0, 0, 100, 100, 400, 400);
imagejpeg($image_p, "Pfad zum Verzeichnis/thumb/$bild_name", 100);
?>

Mit der dritten Zeile, in der die zwischengespeicherte Grafik an den echten Platz kopiert wird (copy-Befehl) endete der erste Schritt unserer Aktivitäten. Das hochgeladene Bild ist nun dort, wo es hingehört. Mit Zeile vier beginnt nun der dynamische Aufbau des Vorschaubildes.

$image_p = imagecreatetruecolor(100, 100);

Dieser Befehl erzeugt am Server ein Bild, das 100 Pixel breit und 100 Pixel hoch ist - also genau die Größe, die wir für das Vorschaubild vorgesehen haben.

$image = imagecreatefromjpeg("Pfad zum Verzeichnis/$bild_name");

Da wir das Bild verkleinern, aber auch kopieren müssen, brauchen wir ein Original. Dieses Original wird der Variable $image zugewiesen und enthält den Pfad, den wir vorhin schon für das Kopieren an den gewünschten Platz benötigt haben. Damit haben wir ein leeres, neues 100x100 Pixel großes Bild und ein Original.

imagecopyresampled($image_p, $image, 0, 0, 0, 0, 100, 100, 400, 400);

Nun wird das Vorschaubild erstellt. Das Ziel ist $image_p, also unser leeres Bild. Quelle ist das Original, also $image. Die vier 0 dahinter sind die x/y-Koordinate von Ziel und Quelle, üblicherweise die linke obere Ecke des Bildes. Hier könnte man auch Bildausschnitte auswählen. Doch das ist jetzt nicht unser Anliegen.

Dahinter finden sich die Größe der Bilder. 100x100 das Vorschaubild, 400x400 das Original. Mit diesem Befehl erstellen wir das Original in der neuen Größe von 100x100 unter der Variable $image_p am Server.

imagejpeg($image_p, "Pfad zum Verzeichnis/thumb/$bild_name", 100);

Zuletzt wird mit dem PHP-Befehl imagejpeg das Bild ($image_p) an den gewünschten Platz übertragen. Hier sollte ein anderer Pfad oder ein anderer Dateiname gewählt werden, weil sonst das Original überschrieben wird. Wir bauen das Unterverzeichnis thumb ein, wo wir die Vorschaubilder ablegen wollen. Auf dieses Verzeichnis verweisen wir dann auf der Webseite. Der Wert 100 am Ende des Befehls ist die Bildqualität - also in dem Fall 100%. Man könnte zwecks Speicherersparnis auch 80% oder weniger wählen, das hängt auch von der Qualität des Originals und der Datenmenge ab.

Damit ist das Vorschaubild erzeugt und sollte unter dem angegebenen Pfad per FTP zu finden sein. Mit ein paar Zeilen Code hat man eine Lösung erarbeitet, die bei hunderten Vorgängen automatisch ein Vorschaubild anlegt, ohne dass man eine Handlung setzen muss.

Buchtipp: PHP und MySQL für Einsteiger (Thalia)*
* = Affiliate-Link; bei Kauf unterstützen Sie diese Plattform

Lesen Sie auch

PHP + Bild ist eine Lösung, die für manche Einsteiger sehr schwierig wirkt, aber es gar nicht unbedingt sein muss. Nicht selten hat man es mit hochgeladenen Bildern zu tun, die es zu verarbeiten gilt. Sie müssen am richtigen Ort gespeichert werden und man braucht vielleicht ein Vorschaubild. Das externe Bild muss einmal verstanden werden und seine Dimensionen erkannt sein.

Dann gilt es, ein Vorschaubild zu erzeugen, das automatisch von einem Skript aufgebaut und gespeichert werden kann, wenn ein Nutzer ein neues Bild hochgeladen hat.

Themenseiten

Diesen Artikel teilen

Infos zum Artikel

Vorschaubild mit PHP erstellenArtikel-Thema: Vorschaubild in PHP mit imagejpeg anlegen
Beschreibung: Ein ✅ hochgeladenes Bild am Server kann mit Hilfe von PHP und ✅ imagejpeg auch dazu genutzt werden, automatisch ein Vorschaubild zu erzeugen.

Kategorien

Grundlagen
HTML-Grundlagen
CSS-Grundlagen
Javascript-Grundlagen
PHP-Grundlagen
MySQL-Grundlagen
SEO-Grundlagen

Infos, Tipps, Vermarktung
Webdesign-Lexikon
Online-Werbung
PHP-Codeschnipsel
Praxisartikel