hallo steffen,
eigentlich soll man die menschen ja selbst auf die lösung kommen lassen. aber manchmal sieht man den wald vor lauter bäumen nicht. im prinzip ist es ganz einfach. wenn du mehrere thumbs neben-, über- oder wie auch immer beieinander darstellen möchtest, brauchst du ja auf jeden fall mal ein script, dass dir aus einem quellbild ein thumb erzeugt (das und nur das). dieses script kannst du dann von deiner formatierten html datei so oft aufrufen, wie du möchtest. wenn es jedoch sehr viele thumbs sind oder die gleichen thumbs sehr oft erzeugt würden (durch z.b. viele aufrufe der seite) wäre es besser das thumb als bilddatei auf dem server zu speichern.
lange rede, kurzer sinn, hier ein für deine kreativität wenig sachdienliches aber funktionsfähiges und universelles "beispiel":
<?php
//für die Image-Funktionen wird die GD-Bibliothek (im Lieferumfang von PHP und verfügbar unter http://www.boutell.com/gd/) benötigt.
$path = $_SERVER['DOCUMENT_ROOT']."/".substr($_SERVER['REQUEST_URI'],1,strrpos($_SERVER['REQUEST_URI'],"/"));
if(!isset($_GET['source'])){
echo "Invalid param count. "source" param is missing.";
DIE;
};
if(!isset($_GET['height'])){
echo "Invalid param count. "height" param is missing.";
DIE;
};
if(!isset($_GET['width'])){
echo "Invalid param count. "width" param is missing.";
DIE;
};
$fromFile = $_GET['source'];
$maxWidth = $_GET['width'];
$maxHeight = $_GET['height'];
$srcFile = $path.$fromFile;
if(!file_exists($fromFile)){
echo "Invalid source file: "".$srcFile.""!";
DIE;
};
if($_GET['width'] == 0){DIE;};
if($_GET['height'] == 0){DIE;};
header("Content-type: image/jpeg");
$image = imagecreatefromjpeg($srcFile);
$sizeX = imagesx($image);
$sizeY = imagesy($image);
if($sizeY / ($sizeX / $maxWidth) > $maxHeight){
$ratio = $sizeY / $maxHeight;
$offsX = ($maxWidth - $sizeX / $ratio) / 2;
$offsY = 0;
} else {
$ratio = $sizeX / $maxWidth;
$offsX = 0;
$offsY = ($maxHeight - $sizeY / $ratio) / 2;
};
$thumb = imagecreatetruecolor($maxWidth, $maxHeight);
$bgColor = imagecolorallocate($thumb, 252,250,240);
imagefill($thumb, 0, 0, $bgColor);
imagealphablending($thumb, false);
imagecopyresized($thumb, $image, $offsX, $offsY, 0, 0, $sizeX / $ratio, $sizeY / $ratio, $sizeX, $sizeY);
imagejpeg($thumb, "",95);
imagedestroy($thumb);
?>
please visit at http://www.arlt.com.