我试图计算单间距字体中字形的宽度和高度(我希望是一致的),但是ImageFont.getsize()
返回不同的值,给定不同的单个字符串:
>>> from PIL import ImageFont
>>> font = ImageFont.truetype("consola.ttf", size=15)
>>> font.getsize(".")
(8, 12)
>>> font.getsize("@")
(9, 15)
ImageFont.getlength()
,另一方面,确实总是为每个字符返回相同的宽度:
>>> font.getlength("@")
8.0
>>> font.getlength(".")
8.0
那么什么是getsize()
测量,为什么它与getlength()
不同呢
从ImageFont.py文件:
getlength():
getsize():
该文件将差异解释为:
我从中了解到
getlength()
返回当前文本和后续文本之间的偏移量(空格),而getsize()
返回当前(输入)文本的实际尺寸从ConsoleA字体系列website:
这意味着每个字符的宽度应该相同,并且每个字符与下一个字符的间距应该相同。可以在以下脚本中看到:
哪些产出:
几乎每个字符都有8的宽度和8的偏移量,但是它们的高度不同,因为有些字符有延伸部分,例如向下延伸的“g”部分。唯一的例外是宽度为9的“@”,对此我找不到任何理由
相关问题 更多 >
编程相关推荐