Добрый день. Помогите найти ошибку. Имеется PHP код PHP: function ResizeImage($image_from, $image_to, $pixels = 1, $scale = 1, $quality = 90) { if($pixels == 0) $pixels = 100; $h = $os = $originalsize = getimagesize ( $image_from ); if ($originalsize [0] > $pixels or $originalsize [1] > $pixels) { switch ($scale) { // по высоте case 1 : $fitheight = $pixels; $fitwidth = $h [0] * $fitheight / $h [1]; break; // по ширине case 2 : $fitwidth = $pixels; $fitheight = $h [1] * $fitwidth / $h [0]; break; // по наибольшей стороне case 3 : if (($h [0]) > ($h [1])) { $fitwidth = $pixels; $fitheight = $h [1] * $fitwidth / $h [0]; } else { $fitheight = $pixels; $fitwidth = $h [0] * $fitheight / $h [1]; } break; } if ($os [2] == 2 or ($os [2] >= 9 AND $os [2] <= 12)) $i = ImageCreateFromJPEG ( $image_from ); if ($os [2] == 3) $i = ImageCreateFromPng ( $image_from ); if ($os [2] == 1) $i = ImageCreateFromGif ( $image_from ); $o = ImageCreateTrueColor ( $fitwidth, $fitheight ); if ($os [2] == 3) { imagealphablending( $o, false); imagesavealpha( $o, true); } imagefilledrectangle($o, 0, 0, $fitwidth, $fitheight, imagecolorallocate($o, 255, 255, 255)); imagecopyresampled ( $o, $i, 0, 0, 0, 0, $fitwidth, $fitheight, $h [0], $h [1] ); imagejpeg ( $o, $image_to, $quality ); chmod ( $image_to, 0777 ); imagedestroy ( $o ); imagedestroy ( $i ); return 2; } if ($originalsize [0] <= $pixels AND $originalsize [1] <= $pixels) { if ($os [2] == 2 or ($os [2] >= 9 AND $os [2] <= 12)) $i = ImageCreateFromJPEG ( $image_from ); if ($os [2] == 3) $i = ImageCreateFromPng ( $image_from ); if ($os [2] == 1) $i = ImageCreateFromGif ( $image_from ); if ($os [2] == 3) { imagealphablending( $i, false); imagesavealpha( $i, true); } imagejpeg ( $i, $image_to, $quality ); chmod ( $image_to, 0777 ); return 1; } } При загрузке изображения PNG фон чернеет. Код (Text): imagealphablending( $i,false); imagesavealpha( $i,true); Что не так в коде? Спасибо!
63 строка для jpeg и все. Где пнг и гиф? --- Добавлено --- 44 так же --- Добавлено --- в моем случае. png с сохранением прозрачности ( не нужны альфа, блендинг) Но скрипт сам как картинка выходит результат, без сохранений. PHP: $BACKGROUND = imagecreatetruecolor(850, 500); $BORDER = ImageCreateFromPNG(DIR_SYSTEM .'thirdworld/images/all/2de42fbb00305f8282310f1b3e10ce9a.png'); $bdX = ImageSX($BORDER); $bdY = ImageSY($BORDER); $image = ImageCreateFromPNG(DIR_SYSTEM .'thirdworld/Map/mb0/'. MB .'.png'); //---------- ImageSetTile($BACKGROUND, $image); imagefilledrectangle($BACKGROUND, 0, 0, 850, 500, IMG_COLOR_TILED); //---------- for ($i=0;$i<count($array);$i++) { $arr = array_reverse($array[$i]); $strrev = strrev($XY[$i]); for ($z=0;$z<count($arr);$z++) { $name = numer($strrev[$z]); $PLIT = ImageCreateFromPNG(DIR_SYSTEM ."thirdworld/Map/$name/". GET_VALUE .".png"); $SX = ImageSX($PLIT); $SY = ImageSY($PLIT); ImageCopyResampled($BACKGROUND,$PLIT,$arr[$z][0]-(($SX-$arr[$z][2])/2),$arr[$z][1]-($SY-$arr[$z][3]),0,0,$SX,$SY,$SX,$SY); } } ImageCopyResampled($BACKGROUND,$BORDER,0,0,0,0,$bdX,$bdY,$bdX,$bdY); //---------- if (SIZE == TRUE) { $width = 850; $height = 500; $newHeight = ceil($height/($width/SIZE)); $THEND = imagecreatetruecolor(SIZE,$newHeight); imagecopyresampled($THEND,$BACKGROUND,0,0,0,0,SIZE,$newHeight,$width,$height); } else { $THEND = $BACKGROUND; } //---------- header('Content-type: image/png'); imagepng($THEND); imagedestroy($BORDER); imagedestroy($image); imagedestroy($PLIT);