I have a function that compresses a photo proportionally:
/* $w_o и h_o - ширина и высота выходного изображения */ function resize($newName, $w_o = false, $h_o = false) { if (($w_o < 0) || ($h_o < 0)) { echo "Некорректные входные параметры"; return false; } $types = array('image/png', 'image/jpeg', 'image/jpg'); // Массив с типами изображений $directory = '../img/avatars/'; $directory_to_file = $directory . $newName; list($w_i, $h_i, $type) = getimagesize($directory_to_file); // Получаем размеры и тип изображения (число) $ext = $types[$type]; // Зная "числовой" тип изображения, узнаём название типа if ($ext) { $func = 'imagecreatefrom'.$ext; // Получаем название функции, соответствующую типу, для создания изображения $img_i = $func($newName); // Создаём дескриптор для работы с исходным изображением } else { echo 'Некорректное изображение'; // Выводим ошибку, если формат изображения недопустимый return false; } /* Если указать только 1 параметр, то второй подстроится пропорционально */ if (!$h_o) $h_o = $w_o / ($w_i / $h_i); if (!$w_o) $w_o = $h_o / ($h_i / $w_i); $img_o = imagecreatetruecolor($w_o, $h_o); // Создаём дескриптор для выходного изображения imagecopyresampled($img_o, $img_i, 0, 0, 0, 0, $w_o, $h_o, $w_i, $h_i); // Переносим изображение из исходного в выходное, масштабируя его $func = 'image'.$ext; // Получаем функция для сохранения результата return $func($img_o, $newName); // Сохраняем изображение в тот же файл, что и исходное, возвращая результат этой операции } /* Вызываем функцию с целью уменьшить изображение до ширины в 66 пикселей, а высоту уменьшив пропорционально, чтобы не искажать изображение */ resize($newName, 66); // Вызываем функцию if ( !resize($newName, 66) ) { echo "Функция не выполнена!"; } else { move_uploaded_file($_FILES['picture']['tmp_name'], $uploadfile); echo "Фотография была загружена!"; } But when it is executed, it gives an error:
Warning : getimagesize (../ img / avatars / 6.png): There is no such file or directory in W: \ domains \ mysite \ settings.php on line 113 Incorrect image
What does he not see? Ways, etc. seems to be correct ..
6.pngthen it searches for it in the same directory as the executable file. Since you have a picture in another directory, it is quite logical that such an error appears. You say that the paths are indicated, but they are not indicated anywhere. - teran 1:16 pm