PHP 5.4 & MySQL 5.6 Grundkurs

Vorschaubilder automatisch erzeugen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Dieses Video zeigt, wie Sie PHP nutzen können, um automatisch aus allen Bildern eines Ordners kleine Vorschaubilder zu erzeugen. Lernen Sie dabei eine Reihe weiterer praktischer Funktionen in PHP kennen.

Transkript

Wenn Sie viele Bilder auf einer Webseite präsentieren möchten, bietet es sich an, dass Sie zuerst einmal kleine Vorschaubilder anzeigen lassen, damit die Ladezeit nicht so lange ist. Interessiert sich jemand für das Bild, kann er sich das größere Original ansehen. Diese Vorschaubilder können Sie jetzt mit php automatisch erstellen lassen. Dafür brauchen wir erst einmal ein paar Vorbereitungen. Wir haben einen Ordner Bilder. In dem sind die eigentlichen Bilder drin. Das ist hier dieser Ordner Bilder, den ich im Verzeichnis eingelegt habe. Dann gibt es einen Ordner Vorschaubilder. Der ist derzeit noch leer und da werden später die Vorschaubilder reingespeichert. Außerdem gibt es zwei Dateien, die hier wichtig sind. Vorschaubilder erzeugt die eigentlichen Vorschaubilder. Diese Datei müssen Sie dann später nur einmal aufrufen. Vorschaubilder ausgeben hingegen erzeugt wirklich die Ansicht, wo man das dann auch sieht. Das heißt, die würde man dann auch dem Benutzer präsentieren. Beginnen wir einmal mit der Datei Vorschaubilder. Diese liest alle Bilder aus dem Unterordner Bilder aus. Das ist mein Ordner, wo die Bilder eigentlich drin sind, erstellt dann die Vorschaubilder und speichert diese im Unterordner Vorschaubilder. Das ist die Aufgabe dieser Datei hier. Hier sehen Sie, wie das realisiert ist. Hier sind erst einmal meine beiden Ordner angegeben. Der eine Ordner Bilder mit den Ursprungsbildern. Und das hier der Ordner, wo dann die kleinen Bilder abgespeichert werden sollen. Es soll natürlich jetzt automatisch ausgelesen werden - alle Bilder, die sich im Bilder-Ordner befinden. Hierfür kann ich über OPENDIR das Verzeichnis öffnen. Dann kann ich das Verzeichnis auslesen. Das passiert hier. Und ich möchte jetzt aber nur die Dateien haben, die Bilder sind. In meinen Fall sind das hier jetzt nur jpeg-Bilder. Das heißt, ich schaue, ob die Endung .jpeg ist. Bilder im .jpeg-Format können sowohl die Endung .jpeg, als auch .jpg haben. Deswegen habe ich hier einen regulären Ausdruck, der sagt: Das e kann da sein, oder es kann auch fehlen. Und nur die Dateinamen, auf die zutrifft, dass sie eben mit dem Punkt enden und eben diese Endung haben. Die lese ich aus und speichere sie in einem neuen Array Bilder. Damit habe ich jetzt in dem Array Bilder alle .jpeg-Bilder aus dem entsprechenden Ordner. Dann kann ich das Verzeichnis schließen. Jetzt muss ich meine Bilder bearbeiten und die Vorschaubilder erstellen. Das geschieht in der FOREACH-Schleife. FOREACH-Schleife deshalb, weil ich ein Array habe. Und ich möchte die Vorschaubilder zu jedem der einzelnen Bilder immer jeweils erstellen. Deswegen durchlaufe ich das Array in diesem FOREACH hier. Über IMAGECREATEFROMJPEG lese ich die Bilder und ermittle dann jeweils die Originalbreite und die Originalhöhe. Als neue Breite lege ich hier 80 fest. Das könnte man natürlich auch ändern. Dann muss ich natürlich die neue Höhe entsprechend anpassen, dass Bilder proportional skaliert werden. Das heißt, sie sollen ja nicht irgendwie verzerrt werden. Die Berechnung der neuen Höhe, auf der Basis von der Originalhöhe und Originalbreite findet in dieser Zeile statt und wird dann abgerundet. Dann kann ich daran gehen, ein neues Bild zu erstellen. Das mache ich IMAGECREATETRUECOLOR und gebe die neue Breite und die neue Höhe an. Das eigentliche Bild wird jetzt hier erzeugt. Das ist die entscheidende Stelle über IMAGECOPYRESAMPLED. Diese Funktion erwartet als ersten Parameter den neuen Bild-Handle. Als zweiten Parameter den Handle des ursprünglichen Bildes und dann die Koordinaten der oberen linken Ecke des neuen und des ursprünglichen Bildes. Das liegt daran - Sie könnten eben auch nur einen Bildausschnitt nehmen. Meinetwegen nur irgendein Teil aus der Mitte. Deswegen geben Sie das hier an. Und schließlich erwartet die Funktion dann noch die Angabe von Breite und Höhe des neuen, als auch des ursprünglichen Bildes. Dieses Skript gibt dann aus THUMBNAIL ERZEUGT, damit wir zumindest hier eine Meldung am Bildschirm haben. Schließlich wird dann das Bild mit dem ursprünglichen Namen im Ordner für die Vorschaubilder, das habe ich hier drin gespeichert, das ist der Ordner für meine Vorschaubilder auch endgültig abgespeichert. Und der Bild-Handle wird dann hier zerstört. Schauen wir uns einmal die Ausgabe hier an von den Vorschaubildern der Datei hier. OK. Meldung ist erfolgreich. Alle diese 5 Vorschaubildchen wurden erstellt. Dann müssen die sich auch in dem entsprechenden Ordner befinden. Das ist dieser hier. Der Ordner Vorschaubilder. Und wirklich. Sie sind da. Es fehlt noch die Ausgabe der Vorschaubilder. Die soll ebenfalls automatisch erfolgen. Das geschieht hier in dieser Datei. Am Anfang sind ein paar grundlegende Formatierungen. Jetzt gehen wir hier zum PHP-Teil. Es wird jetzt hier am Anfang das Verzeichnis angegeben. Es geht jetzt um den Ordner Bilder. Zuerst einmal wird das Verzeichnis angegeben und dann alle Bilder aus diesem Verzeichnis gelesen. Hier wieder das Verzeichnis geöffnet mit OPENDIR. Und dann mit READDIR auf die einzelnen Dateien zugegriffen. Wir schauen, ob das nicht == FALSE ist. Das heißt, dass auch wirklich noch Dateien da sind. Das heißt, das läuft so lange, bis alle Bilder durchlaufen sind. Und die werden dann in diesem Array gespeichert. Und unser Verzeichnis wird geschlossen. Dann erstellen wir links für jedes der ausgelesenen Bilder - wir lassen hier die kleinen Bilder anzeigen. Die haben immer dieselben Namen. Die kleinen Bilder wie die großen Bilder, aber sind in verschiedenen Ordnern. Wir erstellen hierüber einen Link jeweils auf das große Bild. Schauen wir uns auch diese Ausgabe einmal an. Hier sind meine kleinen Vorschaubildchen, die automatisch erzeugt wurden. Und Sie sehen schon, wenn ich über die fahre, hier unten in der Statusleiste, dann erscheint immer ein Verweis auf das große Bild. Das heißt, hier kann ich mir dann durch einen Klick das große Bild jeweils anzeigen lassen. Das könnte natürlich auch noch größer sein und die Ausgabe könnte ich formatieren. Aber damit verlässt man dann natürlich auch den Bereich von php. Um Vorschaubilder ganz automatisch erzeugen zu lassen, brauchen Sie verschiedene Zutaten. Sie brauchen zum einen die Funktionen im Ordner auszulesen. Also erst einmal zu öffnen und dann die Dateien auszulesen. Sie brauchen reguläre Ausdrücke, um nur die richtigen Dateien zu bekommen. In unserem Fall waren das .jpeg-Bilder. Zusätzlich brauchen Sie dann die Bildbearbeitungsmöglichkeiten von php, um die eigentlichen Bilder zu erzeugen.

PHP 5.4 & MySQL 5.6 Grundkurs

Steigen Sie auch ohne Vorwissen in die Programmierung PHP- & MySQL-basierter Webseiten ein und lernen Sie die Sprachgrundlagen wie Bedingungen, Schleifen, Funktionen usw. kennen.

7 Std. 9 min (86 Videos)
Derzeit sind keine Feedbacks vorhanden...

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!