我无法使用imagecopymerge的透明背景

时间:2011-04-03 11:29:21

标签: php image-manipulation gd

我正在调用imagecopymerge($dst_r, $logo, 0, 0, 0, 0, $LogoX, $LogoY, 100);,其中$logo是一个透明背景的png文件。由于某种原因,背景出现了白色。

我做错了什么?

感谢。

2 个答案:

答案 0 :(得分:7)

您需要使用imagealphablending($dst_r, TRUE);来允许复制并保留透明色。手册中的许多more comments (...)建议使用imagecopy代替,因为imagecopymerge从未打算用于透明度。如果您仍然使用pct=100,那么正常的图像复制可能是一种选择。

答案 1 :(得分:0)

这是针对文字的,但你可以明白这一点。如果你发布整个代码会更有帮助。

$font = 25;
$string = "Hello";
$im = @imagecreatetruecolor(strlen($string) * $font / 1.5, $font);
imagesavealpha($im, true);
imagealphablending($im, false);
$white = imagecolorallocatealpha($im, 255, 255, 255, 127);
imagefill($im, 0, 0, $white);
$lime = imagecolorallocate($im, 204, 255, 51);
imagettftext($im, $font, 0, 0, $font - 3, $lime, "font.ttf", $string);
header("Content-type: image/png");
imagepng($im);
imagedestroy($im);
相关问题