gpt4 book ai didi

python - 如何使用 PIL 的 ImageFont 类获取字体像素高度?

转载 作者:太空狗 更新时间:2023-10-29 21:13:07 29 4
gpt4 key购买 nike

我正在使用 PIL 的 ImageFont 模块加载字体以生成文本图像。我希望文本紧紧地绑定(bind)到边缘,但是,当使用 ImageFont 获取字体高度时,它似乎包括字符的填充。如红色矩形所示。 enter image description here

c = 'A'
font = ImageFont.truetype(font_path, font_size)
width = font.getsize(c)[0]
height = font.getsize(c)[1]
im = Image.new("RGBA", (width, height), (0, 0, 0))
draw = ImageDraw.Draw(im)
draw.text((0, 0), 'A', (255, 255, 255), font=font)
im.show('charimg')

如果我能得到字符的实际高度,那么我就可以跳过底部矩形中的边界行,这个信息可以从字体中得到吗?谢谢。

最佳答案

确切大小取决于许多因素。我将只向您展示如何计算不同的字体规范。

font = ImageFont.truetype('arial.ttf', font_size)
ascent, descent = font.getmetrics()
(width, baseline), (offset_x, offset_y) = font.font.getsize(text)
  • 红色区域的高度:offset_y
  • 绿地高度:ascent - offset_y
  • 蓝色区域的高度:descent
  • 黑色矩形:font.getmask(text).getbbox()

希望对您有所帮助。

关于python - 如何使用 PIL 的 ImageFont 类获取字体像素高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43060479/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com