błąd z zmianą wielkosci pliku .png

PHP to skryptowy język wykonywany po stronie serwera. Forum przeznaczone na pytania dot. programowania obiektowego, wzorców projektowych itp.
Awatar użytkownika
baltrek
Posty: 1
Rejestracja: 02 gru 2013, 21:07

błąd z zmianą wielkosci pliku .png

Post autor: baltrek » 02 gru 2013, 21:17

$size = getimagesize("obrazki/upl/".$_FILES['plik']['name']);
$szerokosc = $size[0];
$wysokosc = $size[1];
if ($szerokosc > 600 || $wysokosc > 550)
{

$uploadedfile = ("obrazki/upl/".$_FILES['plik']['name']);
switch ($ext){
case "jpg":
$src = imagecreatefromjpeg($uploadedfile);
break;
case "jpeg":
$src = imagecreatefromjpeg($uploadedfile);
break;
case "png":
$src = imagecreatefrompng($uploadedfile);
break;
case "xpm":
$src = imagecreatefromxpm($uploadedfile);
break;
case "wbmp":
$src = imagecreatefromwbmp($uploadedfile);
break;
case "gif":
$src = imagecreatefromgif($uploadedfile);
break;
}

//$src = imagecreatefromjpeg($uploadedfile);
// pobieranie wymiarow
list($width,$height)=getimagesize($uploadedfile);
//nowe wymiary
$new_width=600;
$new_height=round(($height/$width)*600);
//tworzenie tla
$tmp=imagecreatetruecolor($new_width,$new_height);
$filename = "obrazki/". $_FILES['plik']['name'];
//zmiejszanie i wczytywanie w tlo
imagecopyresized($tmp, $src, 0, 0, 0, 0, $new_width, $new_height,$width, $height);
switch ($ext){
case "jpg":
imagejpeg($tmp,$filename,100);
break;
case "jepg":
imagejpeg($tmp,$filename,100);
break;

case "png":
imagepng($tmp,$filename . ".png",100);
break;
}


exit;

przesyłam zawartosc uploud.php a własciwie jego czesc. Problem w tym ze obrazy .pgn których brane są wymiary, tworzony jest tło (imagecreatetruecolor) o okreslonych wymiarach lecz zawartosc obrazu nie jest kopiowana do pomniejszonego tła, z plikami jpeg działa to tak jak powinno. plik png zapisuje sie tam gdzie powinien ale nie da sie go otworzyc i obejrzec, pliki jpeg działają. nie wiem w czym problem próbowałem zamiast imagecopyresized wstawic imagecopy lub imagecopyresampled ale i tak i tak nie działa tak jak powinno.

ODPOWIEDZ