Как изменить размеры картинки в php?

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

от dorothea_stoltenberg , в категории: PHP , 2 года назад

Как изменить размеры картинки в php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от jaylen.trantow , год назад

@dorothea_stoltenberg 

В PHP есть несколько способов изменить размеры картинки. Один из самых простых способов это с помощью функции 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
$filename = 'path/to/image.jpg';

// Получаем информацию об изображении
$imageInfo = getimagesize($filename);

// Создаем изображение из файла
$image = imagecreatefromjpeg($filename);

// Указываем нужный размер изображения
$newWidth = 100;
$newHeight = 100;

// Создаем новое изображение
$newImage = imagecreatetruecolor($newWidth, $newHeight);

// Копируем старое изображение в новое с изменением размера
imagecopyresampled($newImage, $image, 0, 0, 0, 0, $newWidth, $newHeight, $imageInfo[0], $imageInfo[1]);

// Сохраняем новое изображение в файл
imagejpeg($newImage, 'path/to/new_image.jpg');

// Освобождаем память
imagedestroy($image);
imagedestroy($newImage);


Обратите внимание, что в этом примере используется функция imagecreatefromjpeg, которая создает изображение из файла JPEG. Если вы

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

от margaret , год назад

@dorothea_stoltenberg 

В PHP можно изменить размеры изображения с помощью функций из расширения GD (Graphics Draw).


Вот пример кода, который изменяет размер изображения:

 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
// Открываем изображение
$имя_файла = 'путь_к_файлу/изображению.jpg';
$изображение = imagecreatefromjpeg($имя_файла);

// Получаем текущие размеры изображения
$ширина = imagesx($изображение);
$высота = imagesy($изображение);

// Устанавливаем новые размеры изображения
$новая_ширина = 800;
$новая_высота = 600;

// Создаем новое изображение с новыми размерами
$новое_изображение = imagecreatetruecolor($новая_ширина, $новая_высота);

// Копируем изображение с измененными размерами
imagecopyresampled($новое_изображение, $изображение, 0, 0, 0, 0, $новая_ширина, $новая_высота, $ширина, $высота);

// Сохраняем новое изображение в файл
$новое_имя_файла = 'путь_к_файлу/измененному_изображению.jpg';
imagejpeg($новое_изображение, $новое_имя_файла);

// Очищаем память от созданных изображений
imagedestroy($изображение);
imagedestroy($новое_изображение);


В этом примере мы открываем изображение с помощью функции imagecreatefromjpeg(), получаем текущие размеры изображения с помощью функций imagesx() и imagesy(), устанавливаем новые размеры изображения, создаем новое изображение с новыми размерами с помощью функции imagecreatetruecolor(), копируем изображение с измененными размерами с помощью функции imagecopyresampled(), сохраняем новое изображение в файл с помощью функции imagejpeg(), а затем очищаем память от созданных изображений с помощью функции imagedestroy().


Этот код работает с JPEG-изображениями. Если вы работаете с другими форматами изображений, вам нужно будет использовать соответствующие функции (например, imagecreatefrompng() для PNG-изображений и imagegif() для GIF-изображений).