0

我不知道 GD 库中是否还有其他功能,但我尝试通过他们的文档进行研究。无论如何,好像 imagefttext() 函数不支持 html,只是纯文本。

$text = '<strong>Your Price:</strong><br />$'.$promo_data['selling_price'];

    @imagefttext($image, 12, 0, 163, 30, $color, '../images/gdprac/LUCIDASANSSTD.OTF', $text);

它只是输出 html 标签,并没有将其转换为 HTML。是否有任何其他功能允许 HTML 或使用此功能绕过此功能?

谢谢!

4

2 回答 2

2

gd 函数与 HTML 无关。

如果要使文本变为粗体或斜体,则提供相应的字体文件作为参数,例如:

imagefttext($image, ..., '../images/gdprac/LUCIDASANSSTD-Bold.OTF', $text);

如果你想布置文本(粗体与普通结合,写在“行”中)你将不得不自己手动计算所有文本输出的位置:imageftbbox会让你知道文本将占用多少空间,你将使用这个信息来计算下一段文本应该去哪里。

于 2013-06-10T15:26:19.633 回答
1

imagefttext 只能将纯文本绘制到图像中,不支持 HTM。

如果您想将粗体文本输出到图像,您可以使用粗体字体,或者尝试以下技巧:

<?php
function drawboldtext($image, $size, $angle, $x_cord, $y_cord, $r, $g, $b, $fontfile, $text) 
{ 
   $color = ImageColorAllocate($image, $r, $g, $b); 
   $_x = array(1, 0, 1, 0, -1, -1, 1, 0, -1); 
   $_y = array(0, -1, -1, 0, 0, -1, 1, 1, 1); 
   for($n=0;$n<=8;$n++) 
   { 
      ImageTTFText($image, $size, $angle, $x_cord+$_x[$n], $y_cord+$_y[$n], $color, $fontfile, $text); 
   } 
} 
?>
于 2013-06-10T15:26:35.027 回答