文本自动字体大小(GD 通过 PHP)
$im(GD 图像资源)上有一个 x*y 的文本空间,我如何选择字体大小(或编写文本)使其不会溢出该区域?
There is a space of x*y for text to go on $im (GD Image Resource) how can I choose a font size (or write text such that) it does not overflow over that area?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我认为您正在寻找 imagettfbbox 函数。
几年前,我用它来为 Web 界面生成本地化按钮的脚本。 实际上,如果文本不适合模板,我会调整按钮大小,以保持文本大小一致,但您可以尝试减小文本大小,直到文本适合为止。
如果您有兴趣,我可以粘贴一些代码片段(或立即提供)。
[编辑] 好的,这是我的代码的一些摘录,有一天我会清理它(使其独立于目标应用程序,提供示例)并将其作为一个整体公开。
我希望这些片段有意义。
I think you look for the imagettfbbox function.
I used that some years ago for a script generating localized buttons for a Web interface. I actually resized buttons if the text didn't fit in the template, to keep text size consistent, but you can try to reduce the text size until the text fits.
If you are interested, I can paste some snippets of my code (or give it right away).
[EDIT] OK, here is some extracts of my code, someday I will clean it up (make it independent of target app, give samples) and make it public as a whole.
I hope the snippets make sense.
我已经学习了上面 PhiLho 的课程,并将其扩展为动态缩放各行文本以适合边界框。 我还用一个调用来包装它,这样你就可以看到它是如何工作的。 这几乎是复制意大利面,只需更改您的变量,它应该开箱即用。
I've taken the class by PhiLho above and expanded it to dynamically scale individual lines of text to fit within the bounding box. Also I wrapped it with a call so you can see how it functions. This is pretty much copy-pasta, just change your variables and it should work out of the box.