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