diff --git a/src/PIL/ImageFont.py b/src/PIL/ImageFont.py index 66749a4d5fb..1930fec049a 100644 --- a/src/PIL/ImageFont.py +++ b/src/PIL/ImageFont.py @@ -585,16 +585,16 @@ def getmask2( im = None size = None - def fill(mode, im_size): + def fill(width, height): nonlocal im, size - size = im_size + size = (width, height) if Image.MAX_IMAGE_PIXELS is not None: - pixels = max(1, size[0]) * max(1, size[1]) + pixels = max(1, width) * max(1, height) if pixels > 2 * Image.MAX_IMAGE_PIXELS: return - im = Image.core.fill(mode, size) + im = Image.core.fill("RGBA" if mode == "RGBA" else "L", size) return im offset = self.font.render( diff --git a/src/_imagingft.c b/src/_imagingft.c index 7849c821d0c..4925dc23363 100644 --- a/src/_imagingft.c +++ b/src/_imagingft.c @@ -877,7 +877,7 @@ font_render(FontObject *self, PyObject *args) { width += stroke_width * 2 + ceil(x_start); height += stroke_width * 2 + ceil(y_start); - image = PyObject_CallFunction(fill, "s(ii)", strcmp(mode, "RGBA") == 0 ? "RGBA" : "L", width, height); + image = PyObject_CallFunction(fill, "ii", width, height); if (image == Py_None) { PyMem_Del(glyph_info); return Py_BuildValue("ii", 0, 0);