diff --git a/PIL/ImageFont.py b/PIL/ImageFont.py index 9341b1e96..a8ce3f913 100644 --- a/PIL/ImageFont.py +++ b/PIL/ImageFont.py @@ -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]) diff --git a/Tests/test_imagefont.py b/Tests/test_imagefont.py index 88f63e1cf..d48fd7138 100644 --- a/Tests/test_imagefont.py +++ b/Tests/test_imagefont.py @@ -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: