銀月の符号

Python 使い見習いの日記・雑記

PIL が OpenType のプロポーショナルフォントを正しく読めていない?

font.getsize で OpenType の 'i' と 'w' を調べてみたのだけれど、なんで幅同じなんだろう? たとえば IPA Pゴシック。

>>> from PIL import ImageFont
>>> font = ImageFont.truetype(u'ipagp.otf', 24)
>>> font.getsize(u'i')
(24, 24)
>>> font.getsize(u'w')
(24, 24)

TrueType はちゃんと可変幅。たとえば VL ゴシックのプロポーショナル版。

>>> font = ImageFont.truetype(u'VL-PGothic-Regular.ttf', 24)
>>> font.getsize(u'i')
(8, 31)
>>> font.getsize(u'w')
(19, 31)