CODE:
function createphoto ($input,$output) {
$w = 400; // мы получим пропорциональное изображение шириной 400px
$q = 80; // качество jpeg по умолчанию
$f=$input;
$src = imagecreatefromjpeg($f);
// функция imagecreatefromjpeg создает изображение JPEG из файла
// т.е. создаём исходное изображение на основе исходного файла и определяем его размеры
$w_src = imagesx($src);
$h_src= imagesy($src);
// получение ширины и высоты изображения в пикселях
$ratio = $w_src/$w;
$w_dest = round($w_src/$ratio);
$h_dest = round($h_src/$ratio);
// получение координат для построения нового изображения необходимой нам ширины
$dest = imagecreatetruecolor($w_dest,$h_dest);
// функция imagecreatetruecolor пустое полноцветное изображение размерами x_size и y_size.
// Созданное изображение имеет черный фон.
imagecopyresized($dest, $src, 0, 0, 0, 0, $w_dest, $h_dest, $w_src, $h_src);
// Функция imagecopyresized копирует прямоугольные области с одного изображения на другое
// вывод картинки и очистка памяти
imagejpeg($dest,$output,$q);
imagedestroy($dest);
imagedestroy($src);
}
$w = 400; // мы получим пропорциональное изображение шириной 400px
$q = 80; // качество jpeg по умолчанию
$f=$input;
$src = imagecreatefromjpeg($f);
// функция imagecreatefromjpeg создает изображение JPEG из файла
// т.е. создаём исходное изображение на основе исходного файла и определяем его размеры
$w_src = imagesx($src);
$h_src= imagesy($src);
// получение ширины и высоты изображения в пикселях
$ratio = $w_src/$w;
$w_dest = round($w_src/$ratio);
$h_dest = round($h_src/$ratio);
// получение координат для построения нового изображения необходимой нам ширины
$dest = imagecreatetruecolor($w_dest,$h_dest);
// функция imagecreatetruecolor пустое полноцветное изображение размерами x_size и y_size.
// Созданное изображение имеет черный фон.
imagecopyresized($dest, $src, 0, 0, 0, 0, $w_dest, $h_dest, $w_src, $h_src);
// Функция imagecopyresized копирует прямоугольные области с одного изображения на другое
// вывод картинки и очистка памяти
imagejpeg($dest,$output,$q);
imagedestroy($dest);
imagedestroy($src);
}
Выбрал её, т.к. код небольшой и всё расписано и какбы понятно.
Проблема в том, что если картинка загружается больше лимитного значения 400, то всё ОК - картинка ументшается. Всё прекрасно.
А вот если картинки загружается меньше этого значения - то она наоборот увеличивается до лимитного значения. И это очень плохо.
Что нужно добавать к коду, чтобы маленькие картинки не увеличивались?