我正在使用此代码创建带有透明背景的文字图像。
<?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
答案 0 :(得分:2)
GIF格式无法处理Alpha透明度。它只能有100%透明(=不可见)或100%不透明(=可见)像素。
您的文字似乎有抗锯齿,柔和的边缘。
这些边缘不是100%透明,但它们也不是100%不透明 - 它们是前景和背景的混合。这使它们看起来更柔和。
由于GIF格式无法处理这些细微差别,因此图书馆使用绿色和黑色混合来模拟“较弱”的绿色。
如果您使用PNG格式,问题就会消失:PNG支持Alpha透明度。如果您仍然需要支持IE6,则需要考虑一些问题,但对于其他所有浏览器,这将立即正常工作。