Thumbnails erstellen klappt nicht so recht!

Panzer

Mitglied
Hallo Leute ...

ich habe folgenden Code
PHP:
function check_thumb($imagefile, $thumbfile) {

     if(file_exists($thumbfile)) {
          return false;
     }

     $Img = imageCreateFromJPEG($imagefile);
     
     $oBreite = imageSX($Img);
     $oHöhe = imageSY($Img);
     if($oHöhe>=300){
	$nHöhe = 300;
	$zHöhe = ((int)($oHöhe/100));
	$pHöhe = ((int)(300/$zHöhe));
	$nBreite = ((int)pHöhe*($oBreite/100));
     }
     else{
	$nBreite=$oBreite;
	$nHöhe=$oHöhe;
     }
     $Out = imageCreateTrueColor($nBreite, $nHöhe); 
     imageCopyResampled($Out, $Img, 0, 0, 0, 0, $nBreite, $nHöhe, $oBreite, $oHöhe);
     imageJPEG($Out, $thumbfile); 
     return true;     
}

der is ein Script eingebunden mit denen ich Bilder hochlade und eine Galerie anzeigen lasse ... leider funktioniert die if-funktion nicht wie sie sollte ... (kommentiere ich sie aus funktioniert das script einwnadfrei :suspekt: )
er spuckt mir immer wieder diese Fehlermeldung aus:

Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in /usr/export/www/vhosts/funnetwork/hosting/t4nkm4n/check_thumb.php on line 27

ich geh mal davon aus das es an der "Grössen-Angabe" des Bildes hakt!!

Vielen Dank im vorraus für Anregungen und Hilfe

panzer
 
Hallo Panzer.

Deine Funktion heisst doch check_thumb(). Wäre es dann nicht logisch wenn diese bei file_exists() TRUE zurueckgibt und nicht false? ;-)

Lass dir mal bitte die Breite und Höhe nach der If-Anweisung ausgeben. Ich vermute, dass du trotz (int) eine Gleitkommazahl zurück bekommst.
 
PHP:
<?php
function check_thumb($imagefile, $thumbfile) {

     if(file_exists($thumbfile)) {
          return false;
     }

     $Img = imageCreateFromJPEG($imagefile);
     
     $oBreite = imageSX($Img);
     $oHöhe = imageSY($Img);
     if($oHöhe>=300){
	$zHöhe = $oHöhe/100;
	$pHöhe = 300/$zHöhe;
	$zBreite = $oBreite/100;
	$nBreite = $pHöhe*$zBreite;
	$nHöhe = 300;
     }
     else{
	$nBreite=$oBreite;
	$nHöhe=$oHöhe;
     }
     $Out = imageCreateTrueColor($nBreite, $nHöhe); 
     imageCopyResampled($Out, $Img, 0, 0, 0, 0, $nBreite, $nHöhe, $oBreite, $oHöhe);
     imageJPEG($Out, $thumbfile); 
     return true;     
}


?>

nun klappt es :eek: warum auch immer ... hab nur die einzelnen operationen aus einander gezogen oO

trotzdem danke für die hilfe :)
 
Zurück