Hallo Community,
ich habe ein Problem mit einem Thumbnail Script das ich im www gefunden habe (seite finde ich nicht mehr).
Das Script funktioniert an sich super, aber beim erzeugen eines Thumbnails von einem Hochgeladenen Bild wird eine bsp. temp.jpg angelegt.
Wenn ich dann den Thumbnail Ordner auslese und die sich darin befindlichen Bilder anzeige, wird die angelegte temp.jpg auch angezeigt. Was als resultat nur ein schwarzes Bild ist. Das will ich logischerweise nicht haben.
Hoffe ihr habt das Problem verstanden und einer kann mir Helfen^^
Hier noch das Script:
Vielen Dnak schon mal vorraus^^
ich habe ein Problem mit einem Thumbnail Script das ich im www gefunden habe (seite finde ich nicht mehr).
Das Script funktioniert an sich super, aber beim erzeugen eines Thumbnails von einem Hochgeladenen Bild wird eine bsp. temp.jpg angelegt.
Wenn ich dann den Thumbnail Ordner auslese und die sich darin befindlichen Bilder anzeige, wird die angelegte temp.jpg auch angezeigt. Was als resultat nur ein schwarzes Bild ist. Das will ich logischerweise nicht haben.
Hoffe ihr habt das Problem verstanden und einer kann mir Helfen^^
Hier noch das Script:
PHP:
<?php
function thumbnail($imgfile, $speicherordner="./img/thumbnail/", $filenameOnly=true)
{
//Max. Größe des Thumbnail (Höhe und Breite)
$thumbsize = 140;
//Dateiname erzeugen
$filename = basename($imgfile);
//Fügt den Pfad zur Datei dem Dateinamen hinzu
//Aus ordner/bilder/bild1.jpg wird dann ordner_bilder_bild1.jpg
if(!$filenameOnly)
{
$replace = array("/","\\",".");
$filename = str_replace($replace,"_",dirname($imgfile))."_".$filename;
}
//Schreibarbeit sparen
$ordner = $speicherordner;
//Speicherordner vorhanden
if(!is_dir($ordner))
return false;
//Wenn Datei schon vorhanden, kein Thumbnail erstellen
if(file_exists($ordner.$filename))
return $ordner.$filename;
//Ausgansdatei vorhanden? Wenn nicht, false zurückgeben
if(!file_exists($imgfile))
return false;
//Infos über das Bild
$endung = strrchr($imgfile,".");
list($width, $height) = getimagesize($imgfile);
$imgratio=$width/$height;
//Ist das Bild höher als breit?
if($imgratio>1)
{
$newwidth = $thumbsize;
$newheight = $thumbsize/$imgratio;
}
else
{
$newheight = $thumbsize;
$newwidth = $thumbsize*$imgratio;
}
//Bild erstellen
//Achtung: imagecreatetruecolor funktioniert nur bei bestimmten GD Versionen
//Falls ein Fehler auftritt, imagecreate nutzen
if(function_exists("imagecreatetruecolor"))
$thumb = imagecreatetruecolor($newwidth,$newheight);
else
$thumb = imagecreate ($newwidth,$newheight);
if($endung == ".jpg")
{
imageJPEG($thumb,$ordner."temp.jpg");
$thumb = imagecreatefromjpeg($ordner."temp.jpg");
$source = imagecreatefromjpeg($imgfile);
}
else if($endung == ".gif")
{
imageGIF($thumb,$ordner."temp.gif");
$thumb = imagecreatefromgif($ordner."temp.gif");
$source = imagecreatefromgif($imgfile);
}
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
//Bild speichern
if($endung == ".png")
imagepng($thumb,$ordner.$filename);
else if($endung == ".gif")
imagegif($thumb,$ordner.$filename);
else
imagejpeg($thumb,$ordner.$filename,100);
//Speicherplatz wieder freigeben
ImageDestroy($thumb);
ImageDestroy($source);
//Pfad zu dem Bild zurückgeben
return $ordner.$filename;
}
?>
Vielen Dnak schon mal vorraus^^