加载透明PNG并在图像上绘制

时间:2017-01-28 01:05:49

标签: php image

我正在尝试加载透明的PNG图像。之后我想把它放在另一张图片上。问题是,当我加载PNG时,它没有透明部分,它是白色的,我找不到解决方法来修复它。

$background = imagecreatefrompng(__DIR__ . "/redblue.png");

$image = imagecreatefrompng(__DIR__ . "/arrow.png");
$color = imagecolorallocatealpha($image, 255,0,255,127);
imagecolortransparent($image, $color);
imagealphablending($image, false);
imagesavealpha($image, true);

$final = imagecreatetruecolor(imagesx($background), imagesy($background) + (imagesy($image) / 2));
$green = imagecolorallocate($image, 0, 255, 0);
imagefill($final, 0, 0, $green);

imagecopymerge($final, $background, 0, 0, 0, 0, imagesx($background), imagesy($background), 100);
imagecopymerge($final, $image, 0, imagesy($background) - (imagesy($image) / 2), 0, 0, imagesx($image), imagesy($image), 100);

header("Content-Type: image/png");
imagepng($final);

结果如下所示,但白色部分(箭头周围,不在内部)应该是透明的,在本例中为红色和蓝色:

enter image description here

以下是我使用的图片:

redblue.png enter image description here

arrow.png:arrow.png

管子从哪里来的箭头?

0 个答案:

没有答案