verfaa
Профессор
- Регистрация
- 29 Янв 2007
- Сообщения
- 417
- Реакции
- 49
- Автор темы
- #1
Юзер через форму загружает фото на сайт. Если картинка по ширине больше 1920 нужно уменьшить её до ширины 1920, сохраняя пропорции, т.е. рассчитать необходимую высоту. Вот кусок кода из скрипта-обработчика:
Но этот код не работает - новая картинка не создаётся...
Пробовал вместо
написать:
тоже не хочет работать - уменьшенная картинка не создаётся, вернее вообще никакая не создаётся.
А если просто написать
то новый файл успешно создаётся в нужно папке, только естессно не уменьшенный, т.е. ошибка кроется где-то в этом участке кода:
Помогите пожалуйста найти её
Код:
if(isset($_FILES["file"])) {
$upload = $_FILES["file"];
}
foreach ($upload['tmp_name'] as $index => $value) {
$upload_info = GetImageSize($upload["tmp_name"][$index]); // Получаем ширину/высоту картинки
$ex_arr = explode(".",$upload['name'][$index]);
$extension = $ex_arr[count($ex_arr)-1];
$new_file_name = substr(md5(microtime().getmypid()), 0, 8).".".$extension;
if ($upload_info[0] > 1920) { // Если ширина картинки больше 1920 - уменьшаем её, сохраняя пропорции
$ratio = 1920 / $upload_info[0];
$height = $upload_info[1] * $ratio;
$new_image = imagecreatetruecolor(1920, $height);
$im = imagecreatefromjpeg($upload["tmp_name"][$index]);
imagecopyresampled($new_image, $im, 0, 0, 0, 0, 1920, $height, $upload_info[0], $upload_info[1]);
}
copy($new_image, dirname(__FILE__).'/upload/'.$new_file_name);
}
Пробовал вместо
Код:
$im = imagecreatefromjpeg($upload["tmp_name"][$index]);
imagecopyresampled($new_image, $im, 0, 0, 0, 0, 1920, $height, $upload_info[0], $upload_info[1]);
Код:
imagecopyresampled($new_image, $upload["tmp_name"][$index], 0, 0, 0, 0, 1920, $height, $upload_info[0], $upload_info[1]);
тоже не хочет работать - уменьшенная картинка не создаётся, вернее вообще никакая не создаётся.
А если просто написать
Код:
copy($upload["tmp_name"][$index], dirname(__FILE__).'/upload/'.$new_file_name);
Код:
$im = imagecreatefromjpeg($upload["tmp_name"][$index]);
imagecopyresampled($new_image, $im, 0, 0, 0, 0, 1920, $height, $upload_info[0], $upload_info[1]);
}
copy($new_image, dirname(__FILE__).'/upload/'.$new_file_name);