Php GD将文本添加到png图像始终遵循图像背景颜色

时间:2014-08-23 07:58:53

标签: php image png gd

有没有人知道为什么当我使用gd库将文本添加到png图像时,即使我使用imagecolorallocate()设置了颜色,文本也始终遵循图像背景颜色?提前致谢。

这是我的代码:

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

$im = imagecreatefrompng('picture.png');

$text_color = imagecolorallocate($im, 233, 14, 91);
$text = 'A Simple Text String';
$font_path = './font/arial.ttf';

imagettftext($im, 16, 0, 100, 200, $text_color, $font_path, $text);

imagepng($im);
imagedestroy($im);
?>

1 个答案:

答案 0 :(得分:2)

如果您正在加载8位PNG文件,则可能已经分配了调色板中的所有256个条目。您对imagecolorallocate()的调用将返回false。它会被转换为0,这可能是背景颜色的索引。

你应该做的是调用imagecolorstotal()来查看它是否小于256.如果调色板已满,请在继续之前将图像转换为真彩色。