透明背景图像中的字母边框是不需要的?

时间:2011-10-14 16:49:57

标签: php gd php-gd

我正在使用此代码创建带有透明背景的文字图像。

 <?php
 // Set the content-type
 header('Content-Type: image/gif');

 // Create the image
 $im = imagecreatetruecolor(400, 150);

 // Create some colors

 $black = imagecolorallocate($im, 0, 0, 0);
 $acolor = imagecolorallocate($im, 153, 204, 153);
 imagecolortransparent($im, $black);

 // The text to draw
 $text = 'Testing...';
 // Replace path by your own font path
 $font = 'arial.ttf';

 // Add the text
 imagettftext($im, 50, 0, 10, 100, $acolor, $font, $text);

 // Using imagegif()
 imagegif($im,"img.gif");
 imagedestroy($im);
 ?>

但是用img.gif编写的文字在字母边框('e,s,n,g')上有一些不需要的颜色(黑色)。我怎样才能完成那种颜色。生成的图像是
arial字体下载网站是http://code.google.com/p/ireader/downloads/detail?name=arial.ttf

1 个答案:

答案 0 :(得分:2)

GIF格式无法处理Alpha透明度。它只能有100%透明(=不可见)或100%不透明(=可见)像素。

您的文字似乎有抗锯齿,柔和的边缘。

这些边缘不是100%透明,但它们也不是100%不透明 - 它们是前景和背景的混合。这使它们看起来更柔和。

由于GIF格式无法处理这些细微差别,因此图书馆使用绿色和黑色混合来模拟“较弱”的绿色。

如果您使用PNG格式,问题就会消失:PNG支持Alpha透明度。如果您仍然需要支持IE6,则需要考虑一些问题,但对于其他所有浏览器,这将立即正常工作。