Как наложить одно изображение на другое на PHP?
Публикуя свои изображения многие популярные сервисы используют наложение одного изображения на другое, самый простой пример это вотермак. Вы загружаете изображение, а на него автоматически накладывается другое изображение (логотип сайта). В этой статье я расскажу Вам как сделать вотермак на php.
1. Подготовка изображений
Для начала необходимо создать картинку вотермака в любом удобном для Вас графическом редакторе. Желательно в формате PNG что бы отсутствовал фон.
Следующим шагом создаем функцию загрузки изображения, т.к вотермак будет наложен после загрузки изображения на сайт.
2. Готовый код вотермака на PHP
После того, как функция загрузки и само изображение готово переходим к наложению.
Вставляем функцию наложения в необходимое место:
function wotermak($img1,$img2,$pos){
//типы файлов
$type = pathinfo($img1);
$type2 = pathinfo($img2);
//создаем исходное изображение
if($type['extension'] == 'jpg' or $type['extension'] == 'jpeg') {$img = imagecreatefromjpeg($img1);}
if($type['extension'] == 'png') {$img = imagecreatefrompng($img1);}
$arwater_img = getimagesize($img1); //узнаем размер переданного изображения, чтобы правильно рассчитать координаты наложения
$water_width = $arwater_img[0]; //ширина исходного изображения
$water_height = $arwater_img[1]; //высота исходного изображения
$water_img_type = $arwater_img[2];
$water_img_type = $arwater_img[$water_img_type-1];
$water_img_size = $arwater_img[3];
//создаем водный знак
if($type2['extension'] == 'jpg' or $type['extension'] == 'jpeg') {$water_img = imagecreatefromjpeg($img2);}
if($type2['extension'] == 'png') {$water_img = imagecreatefrompng($img2);}
$water_size = getimagesize($img2); //узнаем размеры водного знака, чтобы правильно выполнить наложение
$logo_h = $water_size[1]; //высота водного знака
$logo_w = $water_size[0]; //ширинаа водного знака
// левый верхний угол
if($pos == 'left_top') { imagecopy ($img, $water_img, 0, 0, 0, 0, $logo_w, $logo_h); }
// правый верхний угол
if($pos == 'right_top') {imagecopy ($img, $water_img, $water_width-$logo_w, 0, 0, 0, $logo_w, $logo_h);}
// правый нижний угол
if($pos == 'right_bottom') {imagecopy ($img, $water_img, $water_width-$logo_w, $water_height - $logo_h, 0, 0, $logo_w, $logo_h); }
//левый нижний угол
if($pos == 'left_bottom') {imagecopy ($img, $water_img, 0, $water_height - $logo_h, 0, 0, $logo_w, $logo_h);}
imagejpeg($img,$img1); //выводим, сохраняем изображение
imagedestroy($img);
}
Вызов функции, и параметры:
wotermak('передаем скрипту изображение, на которое нужно что-то наложить', 'тут путь к накладываемому изображению','Позиция лого (вотермака)');
1 параметр - это исходная картинка (загруженная пользователем).
2 параметр - это Ваш вотермак (логотип который наложим).
3 параметр - это позиция вотермака. Всего их 4:
- left_top - Левый верхний угол
- right_top - Правый верхний угол
- right_bottom - Правый нижний угол (чаще всего используют).
- left_bottom - Левый нижний угол
Пример использования:
wotermak('2.jpg','logo.png','right_bottom');
На этом все, возникнут вопросы - пишите в комментариях помогу! Надеюсь эта статья была Вам полезна!