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

2019-06-24 15:48发布

我使用imagettftext()写在图像上的动态文本,我希望它适合我的图像宽度。

我如何可以计算出文本lenght的字体大小?

Answer 1:

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

这样做的一个方法是将文本与的默认字体大小通,说20,以imagettfbbox并从中检索宽度。 然后,您可以计算出多少较小或较大的文字应该是通过计算一个比例系数,以适应你想要的大小:

scale = targetWidth / bboxWidth;

然后绘制一个合适大小的文字:

fontSize = 20 * scale;

使用imagettftext功能。 字体不完全缩放100%这样,但你会得到一个很好的近似。

见的文档imagettfbox 这里 。



Answer 2:

while (itsTooBigAccordingToimagettftext() && $fontSize > 0) {
    $fontSize--;
}


文章来源: imagettftext(): calculate font size to ensure text fits image width