猿问

将透明 PNG 放置到另一个透明 PNG 上

我有两个图像。我将 imageA 放在 imageB 上。然而,这导致底部图像 (imageB) 颜色不显示。相反,imageA 的透明部分覆盖了 imageB。


$dest = imagecreatefrompng(6.png'); (96x96)

$src = imagecreatefrompng(5.png');


imagealphablending($dest, true);

imagesavealpha($dest, true);


imagealphablending($src, true);

imagesavealpha($src, true);


imagecopy($dest, $src, 10, 30, 0, 0, 40, 40);


ob_start();

imagepng($dest);

$imgswap = ob_get_clean();

imagedestroy($dest);

正如您所看到的,透明(为了清晰起见,在本例中为白色像素)越过 marios 脸。有任何想法吗?


DIEA
浏览 147回答 1
1回答

达令说

来自文档(https://www.php.net/manual/en/function.imagecolortransparent.php):“仅使用 imagecopymerge() 和真彩色图像复制透明度,而不使用 imagecopy() 或调色板图像。”尝试:https://www.php.net/manual/en/function.imagecopymerge.php即使它在评论中说它不支持 aplha。
随时随地看视频慕课网APP
我要回答