Mir hat ein Kumpel vor einiger Zeit ein cript für eine Bildergalerie geschickt. Anfangs funktionierte es gut aber je mehr Bilder dazukamen, umso länger dauerte es bis die Seite geladen ist. Jetzt wollte ich die Galerie so erweitern, dass die Vorschaubilder auf dem Server gespeichert werden und neue erstellt werden, wenn noch keine vorhanden sind. Allerdings weiß ich nicht genau wie ich das anstellen soll. Das Script das für die Vorschau zuständig ist, ist das hier
Wie mache ich es nun, dass überprüft wird, ob die Vorschaubilder da sind oder nicht, und falls nicht, dass diese dann in einem neuem Unterordner des eigentlichen Bildordners gespeichert werden? Die Galerie funktioniert so, dass ich einen Ordner hochladen muss und dieser dann direkt auf der Seite erscheint. Kann mir jemand dabei helfen?
PHP-Code:
<?php
// Variablen auslesen
while (list($key,$val)=each($_GET)) {
${$key} = $val; }
if($thumb)
{
// falls keine Größe vorhanden, dann default-Wert verwenden
if ($w AND $h) {$ThumbnailBreite = $w; $ThumbnailHoehe = $h;}
else {$ThumbnailBreite = 160; $ThumbnailHoehe = 90;}
// Thumbnail erstellung
// Bild Daten auslesen
$Bilddaten = getimagesize($thumb);
$Format = $Bilddaten[2];
$OriginalBreite = $Bilddaten[0];
$OriginalHoehe = $Bilddaten[1];
// JPEG File ?
if ($Format==2)
{
// Abbild der Bilder im Speicher erstellen
$Originalgrafik = ImageCreateFromJPEG($thumb);
$Thumbnailgrafik = ImageCreateTrueColor($ThumbnailBreite, $ThumbnailHoehe);
// Verhältnisse ausrechenn und die Mitte ermitteln
if (($OriginalBreite/$ThumbnailBreite) < ($OriginalHoehe/$ThumbnailHoehe)){
$AusschnittBreite=$OriginalBreite;
$AusschnittHoehe=($ThumbnailHoehe*($OriginalBreite/$ThumbnailBreite));
$OriginalPosX=0;
$OriginalPosY=($OriginalHoehe-$AusschnittHoehe)/2; }
else{
$AusschnittHoehe=$OriginalHoehe;
$AusschnittBreite=($ThumbnailBreite*($OriginalHoehe/$ThumbnailHoehe));
$OriginalPosX=($OriginalBreite-$AusschnittBreite)/2;
$OriginalPosY=0;}
// Thumbnail erstellen
ImageCopyResized($Thumbnailgrafik, $Originalgrafik, 0, 0, $OriginalPosX, $OriginalPosY,
$ThumbnailBreite, $ThumbnailHoehe, $AusschnittBreite, $AusschnittHoehe);
// ausgabe des thumbnails
header("Content-type: image/jpeg");
imagejpeg($Thumbnailgrafik,null,100);
}
}
?>
Kommentar