diff --git a/Tests/test_image.py b/Tests/test_image.py index 0fe5d3c807d..243126a9f35 100644 --- a/Tests/test_image.py +++ b/Tests/test_image.py @@ -671,7 +671,7 @@ def test_remap_palette(self) -> None: assert_image_equal(im_p, im_remapped) assert im_p.palette is not None assert im_remapped.palette is not None - assert im_p.palette.palette == im_remapped.palette.palette + assert bytes(im_p.palette.palette) == im_remapped.palette.palette # Test illegal image mode with hopper() as im_hopper: diff --git a/src/PIL/FliImagePlugin.py b/src/PIL/FliImagePlugin.py index 99d6be1df6d..1749d0668a4 100644 --- a/src/PIL/FliImagePlugin.py +++ b/src/PIL/FliImagePlugin.py @@ -23,7 +23,6 @@ from . import Image, ImageFile, ImagePalette from ._binary import i16le as i16 from ._binary import i32le as i32 -from ._binary import o8 from ._util import DeferredError # @@ -104,9 +103,7 @@ def _open(self) -> None: if not chunk_size: break - self.palette = ImagePalette.raw( - "RGB", b"".join(o8(r) + o8(g) + o8(b) for (r, g, b) in palette) - ) + self.palette = ImagePalette.raw("RGB", tuple(v for rgb in palette for v in rgb)) # set things up to decode first frame self.__frame = -1 diff --git a/src/PIL/Image.py b/src/PIL/Image.py index 82e71035787..dcbc904fe92 100644 --- a/src/PIL/Image.py +++ b/src/PIL/Image.py @@ -2167,8 +2167,6 @@ def putpalette( palette = ImagePalette.ImagePalette(palette=data.palette) palette.dirty = 1 else: - if not isinstance(data, bytes): - data = bytes(data) palette = ImagePalette.raw(rawmode, data) self._mode = "PA" if "A" in self.mode else "P" self.palette = palette @@ -2176,8 +2174,6 @@ def putpalette( self.palette.mode = "CMYK" elif "A" in rawmode: self.palette.mode = "RGBA" - else: - self.palette.mode = "RGB" self.load() # install new palette def putpixel( diff --git a/src/PIL/TiffImagePlugin.py b/src/PIL/TiffImagePlugin.py index 42c1cc96c1e..2ee99f097b3 100644 --- a/src/PIL/TiffImagePlugin.py +++ b/src/PIL/TiffImagePlugin.py @@ -65,7 +65,6 @@ from . import ExifTags, Image, ImageFile, ImageOps, ImagePalette, TiffTags from ._binary import i16be as i16 from ._binary import i32be as i32 -from ._binary import o8 from ._util import DeferredError, is_path from .TiffTags import TYPES @@ -1679,8 +1678,8 @@ def _setup(self) -> None: # fixup palette descriptor if self.mode in ["P", "PA"]: - palette = [o8(b // 256) for b in self.tag_v2[COLORMAP]] - self.palette = ImagePalette.raw("RGB;L", b"".join(palette)) + palette = tuple(b // 256 for b in self.tag_v2[COLORMAP]) + self.palette = ImagePalette.raw("RGB;L", palette) else: self.palette = None