From fc5a9023e51a01c2c89296b5e2897faf5d183f4d Mon Sep 17 00:00:00 2001 From: Lukas Geiger Date: Tue, 23 Sep 2025 12:36:35 +0100 Subject: [PATCH] Increase buffer size to speedup `Image.tobytes()` --- src/PIL/Image.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/PIL/Image.py b/src/PIL/Image.py index b17fd131d..b1c3829d0 100644 --- a/src/PIL/Image.py +++ b/src/PIL/Image.py @@ -793,7 +793,11 @@ class Image: from . import ImageFile - bufsize = max(ImageFile.MAXBLOCK, self.size[0] * 4) # see RawEncode.c + mode_descr = ImageMode.getmode(self.mode) + bytes_per_value = int(mode_descr.typestr[-1]) + channels = len(mode_descr.bands) + bufsize = self.height * self.width * channels * bytes_per_value + bufsize = max(ImageFile.MAXBLOCK, bufsize) # see RawEncode.c output = [] while True: