[PHP] Grafiken ohne Zwischenspeichern auf dem Server ausgeben

Zweipunktnull

Commander
Registriert
Dez. 2004
Beiträge
2.546
Hallo!

Hab mal wieder 'n kleines Problem. :)
Und zwar geht's darum, dass von Grafiken, die auf dem Server liegen, Thumbnails erzeugt werden sollen und diese Thumbnails dann im Browser ausgegeben werden sollen.
Ich hätte kein Problem damit, Thumbnails zu erzeugen, auf dem Server zu speichern und im Browser auszugeben. Aber ohne Zwischenspeichern macht's mir leider Probleme...

PHP:
    /* Bild liegt im JPEG-Format vor */
	else if ($image_info[2] == 2)
	{
		$image = imagecreatefromjpeg($src_img);
        imagecopyresampled($thumbnail, $image, 0, 0, 0, 0, $thumbnail_width, $thumbnail_height, $image_width, $image_height);
        return imagejpeg($thumbnail);
	}

[...]

foreach ($images as $value) // in images sind die ganz normalen (großen) bilder. der code hier drüber ist aus der funktion create_thumbnail
{
    echo "<img src='" . create_thumbnail($cfg_path . $value, 120, 90) . "' /><br />\n";
}

So funktioniert's wie zu erwarten nicht. Im Browser werden nur viele kryptische Zeichen angezeigt. Dacht ich mir, setzte mal n Header:

PHP:
    /* Bild liegt im JPEG-Format vor */
	else if ($image_info[2] == 2)
	{
		$image = imagecreatefromjpeg($src_img);
        imagecopyresampled($thumbnail, $image, 0, 0, 0, 0, $thumbnail_width, $thumbnail_height, $image_width, $image_height);
        header("Content-Type: image/jpeg");
        return imagejpeg($thumbnail);
	}

jetzt wird allerdings leider immer nur das erste bild der schleife ausgeben, und zwar einzeln - ohne html-code. aber wie bekomm ichs denn hin, dass alle thumbnails der schleife auf einer html seite ausgegeben werden?

Nebenbei: wäre es vielleicht besser, die thumbnails auch aufm webserver zu speichern, weil der server sonst zuviel leistung verschwendet oder aus anderen gründen?
 
Natürlich ist es besser Thumbnails einmalig zu erzeugen und diese auf dem Server zu speichern. Davon abgesehen kann dein Ansatz überhaupt nicht funktionieren, denn bei HTTP gilt: ein Request, ein Response. Auf gut Deutsch heißt das, daß du die Thumbnails einzeln generieren und ausliefern mußt, die HTML-Datei enthält lediglich pro Thumbnail einen Verweis auf das Skript, welches die Thumbnails generiert.

greetings, Keita
 
du musst das ganze thumbnail zeugs in eine showthumbnail.php hauen und dann in dem anderen script einfach
HTML:
<img src="showthumbnail.php?image=bla.jpg" alt="Bild" />
reinmachen, also die thumbnailfunktion nicht direkt in die php-datei zum auflisten machen sondern extern.
 
Zurück
Oben