【发布时间】:2022-01-09 04:54:55
【问题描述】:
我正在使用 PIL 的 ImageFont 模块来加载字体以生成文本图像。 我希望文本紧密地绑定到边缘,但是,当使用 ImageFont 获取字体高度时,它似乎包括字符的填充。如红色矩形所示。
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.getsize(c)[1]中的c是什么 -
感谢指出错误,我已经修复了代码块,请检查。
-
@HassanBaig c 代表我认为有问题的角色
-
一行可以得到size:
width, height = font.getsize(c)
标签: python fonts python-imaging-library