我正在使用imagettftext()
在图片上编写动态文字,我希望它符合我的图片宽度。
如何通过文本长度计算字体大小?
答案 0 :(得分:12)
您可以在使用imagettfbbox
函数输出之前计算TTF文本的边界框。不幸的是,没有直接的缩放方式来适应宽度,所以你必须自己做。
执行此操作的一种方法是将文本的默认字体大小(例如20)传递给imagettfbbox
,并从中检索宽度。然后,您可以通过计算比例因子来计算文本应该更小或更大,以符合您想要的大小:
scale = targetWidth / bboxWidth;
然后用适当的大小绘制文本:
fontSize = 20 * scale;
使用imagettftext
功能。字体不会以这种方式100%完美缩放,但你会得到一个很好的近似值。
请参阅imagettfbox
here的文档。
答案 1 :(得分:-2)
while (itsTooBigAccordingToimagettftext() && $fontSize > 0) {
$fontSize--;
}