Hello,
es fehlt wohl einfach eine schließende Klammer für diese Funktion, die aber selber noch sehr verbesserungswürdig ist.
Ein paar Kontrollen, ob die Unteraufgaben ordnungsgemäß erledigt wurden, wären schon hilfreich.
Ob man dann aber bei Misserfolg nur "return false" schreiben darf, oder ggf. noch belegte Handles zurückgeben muss, das mag ich hier jetzt nicht diskutieren. Nimm den nachfolgenden Code also nur als Anregung für die nachzubessernden Dinge...
function img_resize( $tmpname, $size, $save_dir, $save_name )
{
$save_dir . = ( substr($save_dir,-1) != "/") ? "/" : "";
$gis = GetImageSize($tmpname);
if ($gis === false ) return false;
$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);
}
if ($imorig === false ) return false;
$x = imageSX($imorig);
$y = imageSY($imorig);
if($gis[0] <= $size)
{
$av = $x;
$ah = $y;
}
else
{
$yc = $y * 1.3333333;
$d = $x > ($yc?$x:$yc); ## hab ich noch nicht weiter drüber nachgedacht...
$c = $d > ($size ? $size/$d : $size);
$av = $x * $c; //?????? ???????? ????????
$ah = $y * $c; //????? ???????? ????????
}
# $im = imagecreate($av, $ah); ## ent oder weder
# if ($im === false) return false;
$im = imagecreatetruecolor($av,$ah);
if ($im === false) return false;
if (imagecopyresampled($im,$imorig , 0,0,0,0,$av,$ah,$x,$y))
{
if (imagejpeg($im, $save_dir.$save_name))
{
return true;
}
else
{
return false;
}
}
}
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg