Added byte support to FreeTypeFont by radarhere · Pull Request #8141 · python-pillow/Pillow

Currently, FreeTypeFont doesn't support bytes, while the less-used ImageFont does.

>>> from PIL import ImageFont
>>> font = ImageFont.load_default()
>>> font
<PIL.ImageFont.FreeTypeFont object at 0x102bbac10>
>>> font.getlength("test")
16.0
>>> font.getlength(b"test")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "PIL/ImageFont.py", line 353, in getlength
    return self.font.getlength(text, mode, direction, features, language) / 64
TypeError: expected string
>>> from PIL import _util
>>> ImageFont.core = _util.DeferredError(ImportError)
>>> font = ImageFont.load_default()
>>> font
<PIL.ImageFont.ImageFont object at 0x102d23910>
>>> font.getlength("test")
24
>>> font.getlength(b"test")
24

This adds byte support to FreeTypeFont.