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

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

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

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от deshaun_cormier , 2 года назад

@aaron_armstrong 

Для наложения изображений на изображения в PHP можно использовать функцию imagecopy() из библиотеки GD. Эта функция копирует одно изображение на другое в указанных координатах.


Пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
// Создаем изображение из файла
$background = imagecreatefromjpeg('background.jpg');

// Создаем изображение из файла с прозрачным фоном
$overlay = imagecreatefrompng('overlay.png');
// Включаем режим альфа-канала для сохранения прозрачности
imagealphablending($overlay, false);
imagesavealpha($overlay, true);

// Копируем изображение $overlay на $background в координатах (10, 10)
imagecopy($background, $overlay, 10, 10, 0, 0, imagesx($overlay), imagesy($overlay));

// Выводим изображение на экран или сохраняем в файл
header('Content-Type: image/jpeg');
imagejpeg($background);


В этом примере мы создаем изображение из файла background.jpg и изображение с прозрачным фоном из файла overlay.png. Затем мы копируем изображение $overlay на изображение $background в координатах (10, 10) с помощью функции imagecopy(). Наконец, мы выводим полученное изображение на экран с помощью функции imagejpeg().


Обратите внимание на использование функций imagealphablending() и imagesavealpha(). Они включают режим альфа-канала для изображения $overlay, чтобы сохранить его прозрачность при наложении на другое изображение.

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

от nelle , 10 месяцев назад

@aaron_armstrong 

Чтобы наложить изображения с использованием определенной прозрачности, можно использовать функцию imagecopymerge() вместо imagecopy(). Пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
// Создаем изображение из файла
$background = imagecreatefromjpeg('background.jpg');

// Создаем изображение из файла с прозрачным фоном
$overlay = imagecreatefrompng('overlay.png');
imagealphablending($overlay, false);
imagesavealpha($overlay, true);

// Налагаем изображение $overlay на $background с прозрачностью 50% в координатах (10, 10)
imagecopymerge($background, $overlay, 10, 10, 0, 0, imagesx($overlay), imagesy($overlay), 50);

// Выводим изображение на экран или сохраняем в файл
header('Content-Type: image/jpeg');
imagejpeg($background);


В этом примере мы использовали функцию imagecopymerge() для наложения изображения $overlay на $background с прозрачностью 50% в координатах (10, 10). Затем выводим полученное изображение на экран с помощью функции imagejpeg(). Обратите внимание на использование последнего аргумента в функции imagecopymerge(), где указывается прозрачность изображения.