繁体   English   中英

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

[英]imagettftext(): calculate font size to ensure text fits image width

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

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

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

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

scale = targetWidth / bboxWidth;

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

fontSize = 20 * scale;

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

请在此处查看imagettfbox的文档。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM