我目前正在尝试使用 PHP GD 库生成信息图,我可以让文本显示在正确的位置,但是当它变大时,它会与我不希望的图像部分重叠。我想要做的是有某种形式的 html DIV 等价物,我可以放置在我的所有文本区域上并且是固定大小,因此字体会缩小以适应。
我尝试过使用imagettfbox()
,但它只是包装了我需要一种将固定大小和位置设置为文本区域的文本,然后我可以将字符串传递到该文本区域。
任何问题都可以问。
他们是我想出的一个简单的方法。如果我传入图像所在部分的长度,然后检查由 GD 创建的文本的长度,比较文本的宽度是否等于部分宽度,如果不是,则字体大小是减少 1 并且 ypos 减少 0.5 以确保它仍然居中。
这是代码
while ($width > $settings->sectionWidth)
{
$settings->fontSize -= 1;
$bbox = imagettfbbox($settings->fontSize, 0, $font_path, $settings->data);
$width = abs($bbox[4] - $bbox[0]);
$settings->yPos -= 0.5;
}