Hallo,
ich versuche testweise eine Funktion zum Verkleinern von Bildern zu verwenden, die ich auf http://www.php.net/manual/de/function.imagecopyresized.php#85152 gefunden habe.
Konkret sieht das wie im Folgenden aus, die Eingabe der Daten kommt durch ein Formular. Überprüfungen der Eingabe hab ich weggelassen, das es nur um das grundsätzliche Problem geht.
$tmpname = $_FILES['theimage']['tmp_name'];
@img_resize( $tmpname , 600 , "data" , "bild_1.jpg");
function img_resize( $tmpname, $size, $save_dir, $save_name )
{
$save_dir .= ( substr($save_dir,-1) != "/") ? "/" : "";
$gis = GetImageSize($tmpname);
$type = $gis[2];
switch($type)
{
case "1": $imorig = imagecreatefromgif($tmpname); break;
case "2": $imorig = imagecreatefromjpeg($tmpname);break;
case "3": $imorig = imagecreatefrompng($tmpname); break;
default: $imorig = imagecreatefromjpeg($tmpname);
}
$x = imageSX($imorig);
$y = imageSY($imorig);
if($gis[0] <= $size)
{
$av = $x;
$ah = $y;
}
else
{
$yc = $y*1.3333333;
$d = $x>$yc?$x:$yc;
$c = $d>$size ? $size/$d : $size;
$av = $x*$c; //высота исходной картинки
$ah = $y*$c; //длина исходной картинки
}
$im = imagecreate($av, $ah);
$im = imagecreatetruecolor($av,$ah);
if (imagecopyresampled($im,$imorig , 0,0,0,0,$av,$ah,$x,$y))
if (imagejpeg($im, $save_dir.$save_name))
return true;
else
return false;
}
Diese Verarbeitung der hochgeladenen Datei funktioniert, das Bild taucht im entsprechenden Verzeichnis auf.
Sobald ich aber auch nur die simpelste If-Abfrage vor diese Funktion stelle, funktioniert nichts mehr. Es erscheint lediglich eine weiße Seite.
Selbst
if (1 == 1) {
*funktion*
}
reicht schon aus dass es nicht mehr geht.
Kann mir jemand dabei auf die Sprünge helfen, woran das liegt?
Mir ist nicht klar, was in der Funktion es verbietet, diese in eine If-Abfrage zu stecken.
Benötigen würde ich diese Abfrage z.B. um zu überprüfen, ob es sich um eine zulässige Datei handelt.
Gruß Dorfl