Здравствуйте! Для изменения размеров изображения пользуюсь данной функцией PHP: function SetImgSize($img, $width, $height, $AspectRatio, $filePut) { $nameQ = substr($img, -3, 3); switch ($nameQ){ case "jpg": $srcImage = @ImageCreateFromJPEG($img); break; case "gif": $srcImage = @ImageCreateFromGIF($img); break; case "png": $srcImage = @ImageCreateFromPNG($img); break; default: return -1; } $srcWidth = ImageSX($srcImage); $srcHeight = ImageSY($srcImage); if(($width < $srcWidth) || ($height > $srcHeight)) { if($AspectRatio){ $ratioWidth = $srcWidth/$width; $ratioHeight = $srcHeight/$height; if($ratioWidth < $ratioHeight) { $destWidth = intval($srcWidth/$ratioHeight); $destHeight = $height; } else { $destWidth = $width; $destHeight = intval($srcHeight/$ratioWidth); } }else { $destHeight = $height; $destWidth = $width;} $resImage = ImageCreateTrueColor($destWidth, $destHeight); if($nameQ == "png"){ $white = imagecolorallocate($resImage, 255, 255, 255); imagefill($resImage, 0, 0, $white); }else{ $white = ""; } ImageCopyResampled($resImage, $srcImage, 0, 0, 0, 0, $destWidth, $destHeight, $srcWidth, $srcHeight); switch ( $nameQ ){ case "jpg": ImageJPEG($resImage, $filePut, 90);// 100 - максимальное качество break; case "gif": ImageGIF($resImage, $filePut); break; case "png": ImageJPEG($resImage, $filePut, 90); break; } ImageDestroy($srcImage); ImageDestroy($resImage); } } Работает хорошо, за исключение того, что в ней есть один баг, ну или недоработка. Пользуюсь данной функцией в цикле, аргумент $img может принимать и jpg изображения и png и gif. Если скажем так, изменить размер только одного изображения и формата png (ну или jpg, gif), то все работает корректно, но а если изменить размер jpg изображения, а потом png, то png изображение не сохранится, а все последующие изображения НЕ формата png - сохранятся. В чем проблема, не могу понять.
@Great_DUKE, не дави ошибки, может узнаешь в чем дело? Отладку как делаешь:? --- Добавлено --- вероятнее всего ошибка во втором switch
Забавно, но нет. Даже если на месте функции будет PHP: ImagePNG($resImages, $filePut) , то этот баг будет все равно появляться. ImageJPEG я сделал просто для теста.