У меня есть эта функция в PHP.
<?php function zmensi_obrazok($max_dimension, $image_max_width, $image_max_height, $dir, $obrazok, $obrazok_tmp, $obrazok_size, $filename){ $postvars = array( "image" => $obrazok, "image_tmp" => $obrazok_tmp, "image_size" => $obrazok_size, "image_max_width" => $image_max_width, "image_max_height" => $image_max_height ); // Array of valid extensions. $valid_exts = array("jpg","jpeg","gif","png"); // Select the extension from the file. $ext = end(explode(".",strtolower($obrazok))); // Check not larger than 175kb. if($postvars["image_size"] <= 256000){ // Check is valid extension. if(in_array($ext,$valid_exts)){ if($ext == "jpg" || $ext == "jpeg"){ $image = imagecreatefromjpeg($postvars["image_tmp"]); } else if($ext == "gif"){ $image = imagecreatefromgif($postvars["image_tmp"]); } else if($ext == "png"){ $image = imagecreatefrompng($postvars["image_tmp"]); } list($width,$height) = getimagesize($postvars["image_tmp"]); if($postvars["image_max_width"] > $postvars["image_max_height"]){ if($postvars["image_max_width"] > $max_dimension){ $newwidth = $max_dimension; } else { $newwidth = $postvars["image_max_width"]; } } else { if($postvars["image_max_height"] > $max_dimension) { $newheight = $max_dimension; } else { $newheight = $postvars["image_max_height"]; } } $tmp = imagecreatetruecolor($newwidth,$newheight); imagecopyresampled($tmp,$image,0,0,0,0,$newwidth,$newheight,$width,$height); imagejpeg($tmp,$filename,100); return "fix"; imagedestroy($image); imagedestroy($tmp); } } } ?>
Теперь, если я хочу использовать его, и я загружаю изображение, например, 500x300px, и я установил максимальный размер 205x205px, он не хочет изменять пропорции изображения. Он делает что-то вроде 375×205 (высота все еще в порядке). Может кто-нибудь помочь, как это исправить?