объединение — объединение прозрачных изображений в переполнении стека

Я пытаюсь объединить эти изображения:

https://imgur.com/aURQax9 — База

https://imgur.com/a/cpiSc — маркировка

результат должен выглядеть так:
https://imgur.com/a/ri3zw

Я получаю изображение, которое удаляет весь черный цвет, но я не уверен, как это сделать.

$numberOfImages = 2;
$x = 600;
$y = 600;


$background = imagecreatetruecolor($x, $y);
$black = imagecolorallocate($background, 0, 0, 0);
imagecolortransparent($background, $black);

$firstUrl = 'Images/Horses/First horses/Red Breeds/Paint/Adult/Overo/1/BayOvero1AD.png';

$secondUrl = 'Images/Horses/First horses/Red Breeds/Paint/Markings/PaintBlazeAD.png';


$outputImage = $background;

$first = imagecreatefrompng($firstUrl);
$second = imagecreatefrompng($secondUrl);



imagecopymerge($outputImage,$first,0,0,0,0, $x, $y,100);
imagecopymerge($outputImage,$second,0,$y,0,0, $x, $y,100);


imagepng($outputImage, './Images/BayOvero1AD.PaintBlazeAD.png');



imagedestroy($outputImage);

Как я могу обновить это так, чтобы цвет не удалялся и чтобы он сливался очень похоже на законченное изображение выше?

1

Решение

Я только что написал это для вас. Одним из размещенных изображений был jpg, а не PNG, однако это могло быть связано с imgur, поэтому мне пришлось изменить его размер и убрать часть белого. Вот почему мой результат выглядел не совсем правильно при тестировании. Но это должно быть хорошо с вашими оригинальными файлами:

введите описание изображения здесь

Как видите, он добавил второе изображение над первым и сохранил его в правильном положении.

Код, который я использовал для этого был:

<?php
$x = 600;
$y = 600;




$firstUrl = 'Images/Horses/First horses/Red Breeds/Paint/Adult/Overo/1/BayOvero1AD.png';

$secondUrl = 'Images/Horses/First horses/Red Breeds/Paint/Markings/PaintBlazeAD.png';

$Image1 = imagecreatefrompng($firstUrl);
$Image2 = imagecreatefrompng($secondUrl);
imagealphablending($Image1, true);
imagesavealpha($Image1, true);
imagecopy($Image1, $Image2, 0, 0, 0, 0, $x, $y);
imagepng($Image1, './Images/BayOvero1AD.PaintBlazeAD.png');

?>
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]