2012-07-28 67 views
4

一切都可以在图像中旋转和居中文本,但是imagecolortransparent函数创建的文本周围有一个黑色边框。我怎样才能创建一个文字和透明背景的图像?代码如下:用GD创建一个带有文本和透明背景的图像PHP

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

$title = "test text"; 

$im = imagecreatetruecolor(87, 80); 
$white = imagecolorallocate($im, 255, 255, 255); 
$black = imagecolorallocate($im, 0, 0, 0); 
imagefill($im, 87, 80, $black); 
imagecolortransparent($im, $black); 

$white = imagecolorallocate($im, 255, 255, 255); 
$font = "../fonts/arial.ttf"; 

$bbox = imagettfbbox(12,-40,"../fonts/arial.ttf", $title); 
$width = $bbox[2]-$bbox[0]; 
$height = ceil(($bbox[6]-$bbox[0])/2); 

$pos = ceil((87-$width)/2); 
$posx = $pos-$height; 
$posy = $pos+$height; 

imagettftext($im, 12, -45, $posx, $posy, $white, $font, $title); 

imagepng($im); 
imagedestroy($im); 

回答

3

你想要的是关闭消除锯齿,使用颜色的负值完成此操作。

imagettftext($im, 12, -45, $posx, $posy, -$white, $font, $title);