From ca8e5e130920872425b44aa39a98743655d3086d Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Thu, 17 Feb 2022 10:14:16 +1100 Subject: [PATCH] Allow rawmode None to return the palette in the current mode --- Tests/test_image_getpalette.py | 14 ++++++++------ src/PIL/Image.py | 5 ++++- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/Tests/test_image_getpalette.py b/Tests/test_image_getpalette.py index 1690e411ce8..1a84b69280c 100644 --- a/Tests/test_image_getpalette.py +++ b/Tests/test_image_getpalette.py @@ -25,9 +25,10 @@ def test_palette_rawmode(): im = Image.new("P", (1, 1)) im.putpalette((1, 2, 3)) - rgb = im.getpalette("RGB") - assert len(rgb) == 256 * 3 - assert rgb[:3] == [1, 2, 3] + for rawmode in ("RGB", None): + rgb = im.getpalette(rawmode) + assert len(rgb) == 256 * 3 + assert rgb[:3] == [1, 2, 3] # Convert the RGB palette to RGBA rgba = im.getpalette("RGBA") @@ -41,6 +42,7 @@ def test_palette_rawmode(): assert len(rgb) == 256 * 3 assert rgb[:3] == [1, 2, 3] - rgba = im.getpalette("RGBA") - assert len(rgba) == 256 * 4 - assert rgba[:4] == [1, 2, 3, 4] + for rawmode in ("RGBA", None): + rgba = im.getpalette(rawmode) + assert len(rgba) == 256 * 4 + assert rgba[:4] == [1, 2, 3, 4] diff --git a/src/PIL/Image.py b/src/PIL/Image.py index cabcf435a93..458ae9dfceb 100644 --- a/src/PIL/Image.py +++ b/src/PIL/Image.py @@ -1405,7 +1405,8 @@ def getpalette(self, rawmode="RGB"): """ Returns the image palette as a list. - :param rawmode: The mode in which to return the palette. + :param rawmode: The mode in which to return the palette. ``None`` will + return the palette in its current mode. :returns: A list of color values [r, g, b, ...], or None if the image has no palette. """ @@ -1415,6 +1416,8 @@ def getpalette(self, rawmode="RGB"): mode = self.im.getpalettemode() except ValueError: return None # no palette + if rawmode is None: + rawmode = mode return list(self.im.getpalette(mode, rawmode)) def getpixel(self, xy):