我使用imagettftext()
写在图像上的动态文本,我希望它适合我的图像宽度。
我如何可以计算出文本lenght的字体大小?
我使用imagettftext()
写在图像上的动态文本,我希望它适合我的图像宽度。
我如何可以计算出文本lenght的字体大小?
您可以使用输出前计算TTF文本的边框imagettfbbox
功能。 不幸的是,缩放以适应宽度的没有直接的方法,所以你必须自己做。
这样做的一个方法是将文本与的默认字体大小通,说20,以imagettfbbox
并从中检索宽度。 然后,您可以计算出多少较小或较大的文字应该是通过计算一个比例系数,以适应你想要的大小:
scale = targetWidth / bboxWidth;
然后绘制一个合适大小的文字:
fontSize = 20 * scale;
使用imagettftext
功能。 字体不完全缩放100%这样,但你会得到一个很好的近似。
见的文档imagettfbox
这里 。
while (itsTooBigAccordingToimagettftext() && $fontSize > 0) {
$fontSize--;
}