imagettftext():计算字体大小以确保文本适合图像宽度

时间:2012-05-21 16:46:35

标签: php imagettftext dynamic-content dynamic-image-generation

我正在使用imagettftext()在图片上编写动态文字,我希望它符合我的图片宽度。

如何通过文本长度计算字体大小?

2 个答案:

答案 0 :(得分:12)

您可以在使用imagettfbbox函数输出之前计算TTF文本的边界框。不幸的是,没有直接的缩放方式来适应宽度,所以你必须自己做。

执行此操作的一种方法是将文本的默认字体大小(例如20)传递给imagettfbbox,并从中检索宽度。然后,您可以通过计算比例因子来计算文本应该更小或更大,以符合您想要的大小:

scale = targetWidth / bboxWidth;

然后用适当的大小绘制文本:

fontSize = 20 * scale;

使用imagettftext功能。字体不会以这种方式100%完美缩放,但你会得到一个很好的近似值。

请参阅imagettfbox here的文档。

答案 1 :(得分:-2)

while (itsTooBigAccordingToimagettftext() && $fontSize > 0) {
    $fontSize--;
}
相关问题