napisalem prostą funkcję w php do skalowania obrazów... niestety nie wiedziec czemu nie dziala to poprawnie pomimo tego, ze caly kod wyglada na poprawny... efekt wykokania funkcji jest wyswietlenie milionow krzakow na stronie i brak zapisanego nowego, przeskalowanego obrazka.
funkcja:
function przeskaluj_zdjecie($plik, $nowa_sz, $nowa_w, $plik_2){ switch ($info['mime']) { case "image/gif": $plik = imagecreatefromgif($plik); break; case "image/jpeg": $plik = imagecreatefromjpeg($plik); break; case "image/png": $plik = imagecreatefrompng($plik); break; } $plik_sz = imageSX($plik); $plik_w = imageSY($plik); if ($plik_sz > $plik_w) { if ($plik_sz > $nowa_sz){ $plik_2_sz = $nowa_sz; $plik_2_w = $nowa_sz*($plik_sz/$plik_w); }else{ $plik_2_sz = $plik_sz; $plik_2_w = $plik_w; } } if ($plik_sz < $plik_w) { if ($plik_sz > $nowa_sz){ $plik_2_sz = $nowa_sz; $plik_2_w = $nowa_sz*($plik_sz/$plik_w); }else{ $plik_2_sz = $plik_sz; $plik_2_w = $plik_w; } if ($plik_w > $nowa_w){ $plik_2_sz = $nowa_w*($plik_sz/$plik_w); $plik_2_w = $nowa_w; } } if ($plik_sz == $plik_w) { $plik_2_sz=$nowa_w; $plik_2_w=$nowa_w; } $nowy_plik = ImageCreateTrueColor($plik_2_sz, $plik_2_w); @imagecopyresampled($nowy_plik, $plik, 0, 0, 0, 0, $plik_2_sz, $plik_2_w, $plik_sz, $plik_w); @imagejpeg($nowy_plik, $plik2, '90'); @imagedestroy($plik); @imagedestroy($nowy_plik); return TRUE; }
a wywoluje:
przeskaluj_zdjecie("fotka.jpg", "600", "480", "fotka_2.jpg");
bardzo prosze o wasza pomoc
