Как пропорционально уменьшить изображение в php?

Пользователь

от raina , в категории: PHP , 6 месяцев назад

Как пропорционально уменьшить изображение в php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от linnea , 6 месяцев назад

@raina 

Для пропорционального уменьшения изображения в PHP можно использовать функции GD:

 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
<?php
// Путь к оригинальному изображению
$sourceImage = 'путь_к_файлу';

// Максимальная ширина и высота для уменьшения
$maxWidth = 500;
$maxHeight = 500;

// Получение информации о размере оригинального изображения
list($width, $height) = getimagesize($sourceImage);

// Рассчитываем новый размер изображения с сохранением пропорций
$ratio = min($maxWidth / $width, $maxHeight / $height);
$newWidth = $width * $ratio;
$newHeight = $height * $ratio;

// Создание нового изображения с заданными размерами
$newImage = imagecreatetruecolor($newWidth, $newHeight);
$source = imagecreatefromjpeg($sourceImage);

// Уменьшение изображения с помощью функции imagecopyresampled
imagecopyresampled($newImage, $source, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);

// Сохранение уменьшенного изображения
imagejpeg($newImage, 'новый_файл.jpg', 90);
?>


В этом примере мы использовали функцию getimagesize(), чтобы получить информацию о размере оригинального изображения. Затем мы рассчитали новые размеры изображения с сохранением пропорций, используя коэффициент уменьшения $ratio. Затем создали новое изображение с заданными размерами с помощью imagecreatetruecolor(). Далее мы использовали функцию imagecopyresampled(), чтобы уменьшить изображение с помощью выбранного режима интерполяции. Наконец, сохранили уменьшенное изображение с помощью imagejpeg().