Allow ImageFont getsize to read bytes

This commit is contained in:
Andrew Murray 2016-09-19 19:40:01 +10:00
parent 6e7553fb0f
commit 03ae4860ef
2 changed files with 11 additions and 5 deletions

View File

@ -138,6 +138,8 @@ class FreeTypeFont(object):
return self.font.ascent, self.font.descent
def getsize(self, text):
if bytes is not str and isinstance(text, bytes):
text = text.decode()
size, offset = self.font.getsize(text)
return (size[0] + offset[0], size[1] + offset[1])

View File

@ -455,11 +455,15 @@ try:
self.assertEqual(t.font.x_ppem, 20)
self.assertEqual(t.font.y_ppem, 20)
self.assertEqual(t.font.glyphs, 4177)
self.assertEqual(t.getsize('A'), (12, 16))
self.assertEqual(t.getsize('AB'), (24, 16))
self.assertEqual(t.getsize('M'), (12, 16))
self.assertEqual(t.getsize('y'), (12, 20))
self.assertEqual(t.getsize('a'), (12, 16))
for text, size in [
['A', (12, 16)],
['AB', (24, 16)],
['M', (12, 16)],
['y', (12, 20)],
['a', (12, 16)]
]:
self.assertEqual(t.getsize(text), size)
self.assertEqual(t.getsize(text.encode()), size)
except ImportError: