@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, чтобы сохранить его прозрачность при наложении на другое изображение.
@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(), где указывается прозрачность изображения.