diff --git a/src/PIL/BlpImagePlugin.py b/src/PIL/BlpImagePlugin.py index b4aaebd7b6c..c3f5ae3ce6e 100644 --- a/src/PIL/BlpImagePlugin.py +++ b/src/PIL/BlpImagePlugin.py @@ -435,7 +435,7 @@ class BLPEncoder(ImageFile.PyEncoder): def _write_palette(self) -> bytes: data = b"" assert self.im is not None - palette = self.im.getpalette("RGBA", "RGBA") + palette = self.im.getpalette("RGBA") for i in range(len(palette) // 4): r, g, b, a = palette[i * 4 : (i + 1) * 4] data += struct.pack("<4B", b, g, r, a) diff --git a/src/PIL/Image.py b/src/PIL/Image.py index de9fe1e398e..ddbaec20a05 100644 --- a/src/PIL/Image.py +++ b/src/PIL/Image.py @@ -994,9 +994,7 @@ def load(self) -> core.PixelAccess | None: elif self.palette.mode != mode: # If the palette rawmode is different to the mode, # then update the Python palette data - self.palette.palette = self.im.getpalette( - self.palette.mode, self.palette.mode - ) + self.palette.palette = self.im.getpalette(self.palette.mode) if self._im is not None: return self.im.pixel_access(self.readonly) @@ -1346,7 +1344,7 @@ def quantize( from . import ImagePalette mode = im.im.getpalettemode() - palette_data = im.im.getpalette(mode, mode)[: colors * len(mode)] + palette_data = im.im.getpalette(mode)[: colors * len(mode)] im.palette = ImagePalette.ImagePalette(mode, palette_data) return im @@ -2230,7 +2228,7 @@ def remap_palette( palette_mode = self.im.getpalettemode() if palette_mode == "RGBA": bands = 4 - source_palette = self.im.getpalette(palette_mode, palette_mode) + source_palette = self.im.getpalette(palette_mode) else: # L-mode source_palette = bytearray(i // 3 for i in range(768)) elif len(source_palette) > 768: diff --git a/src/PIL/PcxImagePlugin.py b/src/PIL/PcxImagePlugin.py index 3e34e3c63ba..7fb1f2db9cf 100644 --- a/src/PIL/PcxImagePlugin.py +++ b/src/PIL/PcxImagePlugin.py @@ -210,7 +210,7 @@ def _save(im: Image.Image, fp: IO[bytes], filename: str | bytes) -> None: if im.mode == "P": # colour palette fp.write(o8(12)) - palette = im.im.getpalette("RGB", "RGB") + palette = im.im.getpalette("RGB") palette += b"\x00" * (768 - len(palette)) fp.write(palette) # 768 bytes elif im.mode == "L": diff --git a/src/_imaging.c b/src/_imaging.c index ecdaa51c429..9bdb6328782 100644 --- a/src/_imaging.c +++ b/src/_imaging.c @@ -1189,10 +1189,13 @@ _getpalette(ImagingObject *self, PyObject *args) { ImagingShuffler pack; char *mode_name = "RGB"; - char *rawmode_name = "RGB"; + char *rawmode_name = NULL; if (!PyArg_ParseTuple(args, "|ss", &mode_name, &rawmode_name)) { return NULL; } + if (rawmode_name == NULL) { + rawmode_name = mode_name; + } if (!self->image->palette) { PyErr_SetString(PyExc_ValueError, no_palette);