@clifford
Для пропорционального уменьшения изображения в PHP можно использовать функцию imagecopyresampled()
.
Перед использованием этой функции, вы должны загрузить оригинальное изображение с помощью функции imagecreatefromjpeg()
, imagecreatefrompng()
или imagecreatefromgif()
. Затем, вы можете создать новое изображение с желаемыми размерами, используя функцию imagecreatetruecolor()
. Далее, вы можете использовать функцию imagecopyresampled()
для изменения размеров изображения с сохранением его пропорций.
Ниже приведен пример кода, который пропорционально уменьшает изображение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
// Путь к оригинальному изображению $original_image = 'path/to/original/image.jpg'; // Желаемые размеры уменьшенного изображения $width = 500; $height = 500; // Создаем изображение с желаемыми размерами $new_image = imagecreatetruecolor($width, $height); // Загружаем оригинальное изображение $original = imagecreatefromjpeg($original_image); // Получаем размеры оригинального изображения $original_width = imagesx($original); $original_height = imagesy($original); // Рассчитываем коэффициенты уменьшения по ширине и высоте $width_ratio = $original_width / $width; $height_ratio = $original_height / $height; // Рассчитываем коэффициент уменьшения изображения $ratio = max($width_ratio, $height_ratio); // Рассчитываем новые размеры изображения $new_width = round($original_width / $ratio); $new_height = round($original_height / $ratio); // Копируем и изменяем размеры оригинального изображения на новое изображение imagecopyresampled($new_image, $original, 0, 0, 0, 0, $new_width, $new_height, $original_width, $original_height); // Сохраняем уменьшенное изображение в файл imagejpeg($new_image, 'path/to/new/image.jpg'); // Освобождаем память imagedestroy($original); imagedestroy($new_image); |
В этом примере мы используем функцию imagecopyresampled()
для уменьшения размеров оригинального изображения до желаемых размеров, сохраняя его пропорции. Результат сохраняется в новый файл. Не забудьте освободить память после работы с изображениями.