如何将PNGS与alpha通道合并为一个更大的图像?

时间:2010-12-17 00:39:57

标签: php transparency gd

我试图将这些分层:

gametile_masked_file gamertile_masked_file sanctum-background.png

进入这个:

alt text

但我一直得到的是:

alt text

这是相关的代码,我不知道我错过了什么:

    $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上) gamertile gametile

1 个答案:

答案 0 :(得分:0)

您的代码中存在拼写错误,是复制/粘贴错误还是真正的错误?

你这样做:

$sig_gamertile = imagecreatefrompng($gamertile_masked_file);
imagealphablending($sig_gamertile, false);
imagesavealpha($sig_gamertile, true);

然后:

$sig_gametile = imagecreatefrompng($gametile_masked_file);

但是之后,您继续在$sig_gamertile而不是$sig_gametile上调用函数:

imagealphablending($sig_gamertile, false);
imagesavealpha($sig_gamertile, true);

显然,从根本上重新命名一些变量将有助于防范这种情况。