Php 如何将带有alpha通道的PNG合并到一个较大的图像中?
我正在尝试分层这些: 为此: 但我一直得到的是: 这是相关代码,我不确定我遗漏了什么:Php 如何将带有alpha通道的PNG合并到一个较大的图像中?,php,transparency,gd,Php,Transparency,Gd,我正在尝试分层这些: 为此: 但我一直得到的是: 这是相关代码,我不确定我遗漏了什么: $sig_background = imagecreatefrompng("sanctum-signature.png"); imagealphablending($sig_background, false); imagesavealpha($sig_background, true); $sig_gamertile = imagecreatefrompng($gamertile_maske
$sig_background = imagecreatefrompng("sanctum-signature.png");
imagealphablending($sig_background, false);
imagesavealpha($sig_background, true);
$sig_gamertile = imagecreatefrompng($gamertile_masked_file);
imagealphablending($sig_gamertile, false);
imagesavealpha($sig_gamertile, true);
$sig_gametile = imagecreatefrompng($gametile_masked_file);
imagealphablending($sig_gamertile, false);
imagesavealpha($sig_gamertile, true);
imagecopymerge($sig_background, $sig_gamertile, 175, 2, 0, 0, 64, 64, 100);
imagecopymerge($sig_background, $sig_gametile, 342, 20, 0, 0, 64, 64, 100);
如果还缺少更多的信息,请告诉我,我会尽力填补空白。谢谢你抽出时间
编辑-这里是指向文件的链接(托管在photobucket上)
行:
imagealphablending($im, false);
禁用alpha混合。使用true而不是false。您的代码中有一个输入错误,是复制/粘贴错误还是真正的错误 你可以:
$sig_gamertile = imagecreatefrompng($gamertile_masked_file);
imagealphablending($sig_gamertile, false);
imagesavealpha($sig_gamertile, true);
然后:
$sig_gametile = imagecreatefrompng($gametile_masked_file);
但是紧接着,您继续调用$sig\u gamertile
上的函数,而不是$sig\u gamertile
:
imagealphablending($sig_gamertile, false);
imagesavealpha($sig_gamertile, true);
显然,彻底重命名某些变量将有助于防止出现这种情况。从上一个屏幕截图上呈现gametile和gametile的方式来看,在源PNG中似乎没有正确应用掩码。你能发布一些源图片的链接吗?