Как наложить изображения на изображения в php?

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

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

Как наложить изображения на изображения в php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

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

от jaren , 7 месяцев назад

@rachel 

В PHP можно наложить изображения друг на друга с помощью функции imagecopy() или функции imagecopyresized(), в зависимости от того нужно ли изменить размер изображения.


Пример использования функции imagecopy() для наложения изображений:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
// Создаем новое изображение
$background = imagecreatefromjpeg('background.jpg');
$overlay = imagecreatefrompng('overlay.png');

// Получаем размеры изображений
$background_width = imagesx($background);
$background_height = imagesy($background);
$overlay_width = imagesx($overlay);
$overlay_height = imagesy($overlay);

// Наложение изображения
imagecopy($background, $overlay, 0, 0, 0, 0, $overlay_width, $overlay_height);

// Вывод изображения
header('Content-type: image/jpeg');
imagejpeg($background);

// Освобождение памяти
imagedestroy($background);
imagedestroy($overlay);


Пример использования функции imagecopyresized() для наложения изображений с изменением размера:

 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
// Создаем новое изображение
$background = imagecreatefromjpeg('background.jpg');
$overlay = imagecreatefrompng('overlay.png');

// Получаем размеры изображений
$background_width = imagesx($background);
$background_height = imagesy($background);
$overlay_width = imagesx($overlay);
$overlay_height = imagesy($overlay);

// Устанавливаем размеры и позицию для наложения
$resize_width = 200;
$resize_height = 200;
$position_x = 50;
$position_y = 50;

// Наложение изображения с изменением размера
imagecopyresized($background, $overlay, $position_x, $position_y, 0, 0, $resize_width, $resize_height, $overlay_width, $overlay_height);

// Вывод изображения
header('Content-type: image/jpeg');
imagejpeg($background);

// Освобождение памяти
imagedestroy($background);
imagedestroy($overlay);


В приведенных примерах background.jpg - это основное изображение, на которое будет наложено overlay.png - изображение, которое будет наложено на основное изображение. Размеры и позиция наложения указываются в функции наложения изображений.