Задать вопрос
kazarin0v
@kazarin0v
Разработчик сайтов WordPress

Как наложить png маску на картинку?

Есть два фото.
Маска
63281ae99b3de527526906.png

Картинка
63281b1f2b11d323206373.jpeg

Должно быть так
63281b5848cc5806226089.png

Маска может быть просто черного цвета.
  • Вопрос задан
  • 261 просмотр
Подписаться 4 Простой 2 комментария
Решения вопроса 1
Compolomus
@Compolomus Куратор тега PHP
Комполом-быдлокодер
// исходник маски
$mask = new Imagick($_SERVER['DOCUMENT_ROOT'] . '/mask.png');
// меняем прозрачный цвет на оранжевый и черный на прозрачный
$mask->opaquePaintImage('transparent', 'orange', 10, false, Imagick::CHANNEL_DEFAULT);
$mask->opaquePaintImage('black', 'transparent', 10, false, Imagick::CHANNEL_DEFAULT);
//$mask->writeImage($_SERVER['DOCUMENT_ROOT'] . '/prepare-mask.png');

// исходник изображения
$source = new Imagick($_SERVER['DOCUMENT_ROOT'] . '/image.jpeg');
// накладываем маску на изображение
$mask->compositeImage($source, Imagick::COMPOSITE_DSTOVER, 0, 0); //COMPOSITE_DSTATOP
//$mask->writeImage($_SERVER['DOCUMENT_ROOT'] . '/composite.png');

// меняем оранжевый цвет на прозрачный
$mask->opaquePaintImage('orange', 'transparent', 10, false, Imagick::CHANNEL_DEFAULT);
$mask->setImageFormat('png');

//$mask->writeImage($_SERVER['DOCUMENT_ROOT'] . '/result.png');

header('Content-type: image/png');
echo $mask;

mask.png
632b4e17ed639827850623.png
prepare-mask.png
632b4e4da878a138015478.png
image.jpeg
632b4e7087608919904339.jpeg
composite.png
632b4e8c29da3251513049.png
result.png
632b4e9f7544d467645939.png
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
TTATPuOT
@TTATPuOT
https://code.patriotovsky.ru/
Вы же даже знаете, что у вас png и что маска называется маской, в чём проблема то?
https://www.google.com/search?q=php%20png%20mask
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы