【问题标题】:Determining height and length of text in pixels given the font在给定字体的情况下确定文本的高度和长度(以像素为单位)
【发布时间】:2020-01-20 17:28:21
【问题描述】:

这主要是一个 HTML 问题,但我有兴趣使用 Python 3 从 HTML 中提取信息。


我的问题是:

给定字体系列、字体粗细和字体样式,以及文本本身和文本大小,我如何确定文本的高度和宽度?

也就是说,我有文本左上角的坐标,我想找到它的右下角。我准备在我的脚本中手动输入单个字母的大小,如果需要的话(希望不是!)。


作为一个基本示例,我有一个字体

f { font-family:sans-serif; font-weight:normal; font-style:normal; }

还有一个标签

<span id="f" style="font-size:20px;vertical-align:baseline;color:rgba(0,0,0,1);">Hello, world!</span>

我想计算文本的宽度和高度,以像素为单位。


我知道网站上有相关问题,但我找不到任何可以回答我的具体问题的问题。如果存在,请随意链接此类问题(如果已回答)。

【问题讨论】:

  • 你可以只计算span的大小,对吧?
  • 你能像这个问题一样使用硒吗? stackoverflow.com/questions/15510882/…
  • @BramVanroy 我该怎么做?在 HTML 方面,我离专家不远......
  • @GammaGames 我不确定。我会仔细看看的。替代解决方案表示赞赏,但非常感谢您的提示!

标签: html python-3.x


【解决方案1】:

我有一个解决方案(尚未实施)。字体的解析(通常)通过引用 .ttf (TrueFont) 文件来完成。您可以在C:/Windows/Fonts 中找到此类文件(在 Windows 中,不确定其他操作系统)。

在 Python 中使用 PIL/Pillow,您可以使用给定字体绘制任何字符串的位图,参见例如this answer。确切地说,您希望在使用适当的 .ttf 文件初始化 ImageFont 的实例后使用 PIL.ImageFont.ImageFont.getmask。然后,您可以获取蒙版的大小并重新缩放以匹配字体大小。

【讨论】:

    猜你喜欢
    • 2011-10-16
    • 2014-09-18
    • 1970-01-01
    • 2010-12-06
    • 1970-01-01
    • 2011-08-15
    • 2013-04-07
    • 1970-01-01
    • 2012-08-17
    相关资源
    最近更新 更多