Keep palette the same length

This commit is contained in:
Andrew Murray 2021-06-19 09:31:46 +10:00
parent f45d2e296d
commit aa4489c993
2 changed files with 3 additions and 4 deletions

View File

@ -830,7 +830,7 @@ class Image:
arr = bytes( arr = bytes(
value for (index, value) in enumerate(arr) if index % 4 != 3 value for (index, value) in enumerate(arr) if index % 4 != 3
) )
self.im.putpalette(mode, arr) palette_length = self.im.putpalette(mode, arr)
self.palette.dirty = 0 self.palette.dirty = 0
self.palette.rawmode = None self.palette.rawmode = None
if "transparency" in self.info: if "transparency" in self.info:
@ -841,7 +841,7 @@ class Image:
self.palette.mode = "RGBA" self.palette.mode = "RGBA"
else: else:
self.palette.mode = "RGB" self.palette.mode = "RGB"
self.palette.palette = self.im.getpalette() self.palette.palette = self.im.getpalette()[: palette_length * 3]
if self.im: if self.im:
if cffi and USE_CFFI_ACCESS: if cffi and USE_CFFI_ACCESS:

View File

@ -1663,8 +1663,7 @@ _putpalette(ImagingObject *self, PyObject *args) {
unpack(self->image->palette->palette, palette, palettesize * 8 / bits); unpack(self->image->palette->palette, palette, palettesize * 8 / bits);
Py_INCREF(Py_None); return PyLong_FromLong(palettesize * 8 / bits);
return Py_None;
} }
static PyObject * static PyObject *