В принципе, я разрабатываю систему обрезки изображений. И я пытаюсь изменить размер и преобразовать изображения в jpeg, а затем разрешить выполнение функций кадрирования. Однако он не изменяет размер и преобразует проблему. Но когда я добавляю функцию обрезки, проблема в том, что она возвращается с обрезанным черным изображением. Информация для этого будет опубликована с помощью jQuery Ajax. И я знаю, что проводка ajax работает правильно, потому что я отлаживал ее. Я могу предоставить вам свой сценарий на стороне клиента, хотя я не верю, что это необходимо, поскольку проблема, похоже, в PHP.
Обновление: я пересмотрел свой сценарий. Проблема все еще сохраняется.
$old_file_path = $user_data['profile_pic']; $new_width = $_POST['width_img']; $new_height = $_POST['height_img']; $dst_x = 0; $dst_y = 0; $src_x = $_POST['left']; $src_y = $_POST['top']; $dst_w = $_POST['width']; $dst_h = $_POST['height']; $src_w = $_POST['width']; $src_h = $_POST['height']; $file_path = 'core/images/profile/'. substr(md5(time()), 0, 15) . '.' . 'jpg'; $old_file_name = $user_data['profile_pic']; $allowed = array('jpg','jpeg','gif','png'); $file_extension= explode('.', $old_file_name); $file_extn= strtolower(end($file_extension)); $image_p = imagecreatetruecolor($new_width, $new_height); if($file_extn == 'jpg' || $file_extn == 'jpeg'){ $image = imagecreatefromjpeg($old_file_name); }if ($file_extn == 'png'){ $image = imagecreatefrompng($old_file_name); } list($width, $height) = getimagesize($old_file_name); imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); imagejpeg($image_p, $file_path); //Begin cropping! $dst_image = imagecreatetruecolor($dst_w,$dst_h); $src_image = imagecreatefromjpeg($old_file_name); imagecopyresampled($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h); imagejpeg($dst_image, $file_path); crop_profile_image($session_user_id, $file_path, $old_file_path); function crop_profile_image($user_id, $file_path, $old_file_path){ if(file_exists($old_file_path) === true){unlink($old_file_path);} mysql_query("UPDATE `users` SET `profile_pic` = '". mysql_real_escape_string($file_path) ."' WHERE `user_id` = " . (int)$user_id); }