Layoutprobleme? - Styleswitcher!
![]() |
| | Themen-Optionen |
| | Nach oben #1 |
| Jann Hendrik Bekaan Registriert seit: 02.12.2004 Ort: Wildeshausen
Beiträge: 1.548
| thumbnails erstellen - kleine Funktion In diesem Tutorial geht es darum eine Funktion zu schaffen, die ein thumbnail in beliebiger Größe erstellt. Benötigt wird neben einem Verzeichnis mit ausreichenden Rechten eine installierte GDlib. Desweiteren funktioniert diese Funktion nur mit JPEG-Dateien. Da in vielen GDlib-Versionen aus rechtlichen Gründen der gif-support entfernt werden musste. Allerdings ist in den neuen gdlib-Version wieder gif-support vorhanden. Ihr müßtet dann lediglich die Funktion ein wenig anpassen. Die Überprüfung, ob es ein gif ist - oder jpeg, kann einfach in der 2. Zeile der Funktion erweitert werden. Hier möchte ich aber nicht weiter auf gif eingehen. Die Idee ist, dass mittels Aufruf einer Funktion mkthumb() ein Bild, welches in Originalgröße vorhanden ist in kleinerer Form anzubieten. Der Vorteil liegt klar auf der Hand: -traffic wird verringert und damit der Seitenaufbau beim user beschleunigt. Es sollte sicher gestellt sein, dass ein Verzeichnis auf dem webspace vorhanden ist, bei dem Schreibrechte vorhanden sind, sonst wird es zu Fehlermeldungen kommen! Wie bei jedem guten Skript sollte man mit error_reporting(E_ALL); beginnen, um etwaige Fehler gleich gemeldet zu bekommen. PHP-Code: Da wären: - der Dateiname des Bildes - Name des Ordners, in dem die Originale sind - Name des Ordners, in den die Thumbs sollen - Max. Ausdehnung der thumb-Datei in x-Richtung - Max. Ausdehnung der thumb-Datei in y-Richtung somit sieht die Funktion nun so aus: PHP-Code: PHP-Code: Dir Rückgabe RETURN TRUE; bringt den Vorteil, dass man - wenn man möchte - später mittels if(mkthumb) im Skript abfragen kann, ob die Funktion erfolgreich ausgeführt wurde. Der zeit ist das noch nicht sinnvoll, weil die Funktion ja nichts anderes macht, als nur genau das eine. Wir müßen in der Funktion einen Bezeichner auf das Bild selbst zurückgeben, der das aus der angegebenen Datei eingelesene Bild darstellt. das geht mit folgender Zeile: $image = imagecreatefromjpeg($folder_scr."/".$img_src); Damit rufen wird das Originalbild auf - in Abhängigkeit von den Parametern, mit welcher wir die Funktion aufrufen. Dann lesen wir die Höhe und die Breite des Bildes aus: list($src_width, $src_height) = getimagesize($folder_scr."/".$img_src); Somit haben wir in $src_width die Breite und in $src_height) die Höhe des Bildes. Das ist wichtig, weil wir das Bild natürlich im gleichen Verhältnis verkleinern wollen. Abhängig davon, ob das Bild nun in Hoch- oder Querformat vorliegt wird nun die neue Dimension errechnet. Somit sieht der Code schon wie folgt aus: PHP-Code: Die Vorgehensweise ist nun: ein Bild erstellen, dass die Größe des thumbs hat und das Original auf das erstellte Bild kopieren. Das geht so: Bild erstellen: $new_image = imagecreatetruecolor($new_image_width, $new_image_height); Bild kopieren: imagecopyresampled($new_image, $image, 0, 0, 0, 0, $new_image_width,$new_image_height, $src_width, $src_height); Was dann noch fehlt ist die Ausgabe des thumbs. Das sieht so aus: imagejpeg($new_image, $des_src."/".$img_src, 100); Somit wäre die Funktion fertig: PHP-Code: PHP-Code: Der bisherige Teil dieses Tutorials hat sich nur auf jpeg-Bilder beschränkt. Sinnvoll wäre, wenn die Funktion auch gif und png verarbeiten kann und diese selbstständig unterscheiden kann. Dafür wird die Zeile PHP-Code: PHP-Code: Wenn man nun eine Fallunterscheidung zwischen GIF, JPG und PNG macht, dann müßen nur jeweils zwei Zeilen angepasst werden, damit auch die beiden Datentypen verarbeitet werden können. Das sieht dann so aus: PHP-Code: Anmerkung: Für die Verarbeitung von GIF bedarf es die gdlib kleiner als 1.6 oder größer als Version 2.0.28, denn die gif-Verarbeitung war zwischenzeitlich nicht implementiert. Darüber hinaus wird in diesem Beispiel bei GIF-Bildern auf die Verwendung von imagecreatetruecolor (24bit) verzichtet, da gif maximal nur 256 Farben (8bit) verarbeiten kann. Die benutzten Funktionen: Jetzt solltet Ihr eigentlich in der Lage sein, das Script ohne Vorlage nachzuprogrammieren. Die verwendeten Funktionen findet Ihr alle im PHP-Manual. Solltet Ihr Fragen zu dem Tutorial haben, so schreibt bitte einen Beitrag im PHP-Forum mit einem Verweis auf dieses Tutorial. Danke. Grüße Jann Hendrik Geändert von Jann Hendrik (07.09.2007 um 09:48 Uhr). |
| | |
| | Nach oben #2 |
| Jann Hendrik Bekaan Registriert seit: 02.12.2004 Ort: Wildeshausen
Beiträge: 1.548
| folgender link sei noch empfohlen: thumbnail-Klasse; Qualität ok? |
| | |
| | Nach oben #3 |
| Jann Hendrik Bekaan Registriert seit: 02.12.2004 Ort: Wildeshausen
Beiträge: 1.548
| weiterhin ist dieser link sehr interessant: Ich bekomme Thumbnail Funktion von Jann Hendrik nicht zum laufen! |
| | |
![]() |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [PHP] Zeitformate, Datum und Co | Jann Hendrik | Tutorials | 0 | 05.12.2006 18:48 |
| [SUCHE] Funktion erstellen | Jan | Gesuche | 5 | 30.10.2006 10:09 |
| [PHP] FTP-Funktionen in PHP nutzen | MrNiceGuy | Tutorials | 0 | 24.05.2006 14:18 |
| [PHP] Rekursives Erstellen von Verzeichnissen | Jojo | Tutorials | 4 | 12.03.2006 18:26 |
| [PHP] Wie kann ich eine Textdatei erstellen und mit Inhalt füllen? | Ben | Tutorials | 2 | 06.09.2005 11:17 |
Alle Zeitangaben in WEZ +2. Es ist jetzt 21:32 Uhr.
Nach oben






