2012-04-01 180 views
2
$c = 'johnny-bravo.png'; //transparent bg 
$imagesize = getimagesize($c); 

$background = imagecreatefrompng('background.png'); //background 
$char = imagecreatefrompng($c); 

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

imagecopymerge($background, $char, 260, 17, 0, 0, $imagesize[0], $imagesize[1], 100); 

header('Content-type: image/png'); 

imagepng($background); 
imagedestroy($background); 

输出:PHP:透明背景

http://i.stack.imgur.com/0E7Lz.png

我怎样才能让透明背景, “约翰尼 - 布拉沃”?

+0

不要忘记设置$背景图像上的字母选项,以及。 – 2012-04-01 21:28:21

+0

@MarcB与“$背景”完成但仍然相同的输出 – 2012-04-01 21:31:53

回答

0

使用下面的代码:

$c = 'johnny-bravo.png'; //transparent bg 
$imagesize = getimagesize($c); 

$tmp = @imagecreatetruecolor($imagesize[0], $imagesize[1]); 
@imagealphablending($tmp , false); 
@imagesavealpha($tmp , true); 
$background = @imagecreatefrompng('background.png'); 

@imagecopyresampled($tmp , $background , 0 , 0 , $imagesize[0] , $imagesize[1] , $imagesize[0] , $imagesize[1]); 
$char = @imagecreatefrompng($c); 
@imagecopyresampled($tmp , $char, 260, 17, 0, 0, $imagesize[0], $imagesize[1], 100); 

header('Content-type: image/png'); 

imagepng($tmp); 
imagedestroy($tmp); 
+0

输出是相同的..谢谢你的answear – 2012-04-01 21:18:58

+0

欢迎您,请w8修复tihs – 2012-04-01 21:20:08

+0

@DanielaRăducanu测试我的编辑代码 – 2012-04-01 21:25:45