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(
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.rawmode = None
if "transparency" in self.info:
@ -841,7 +841,7 @@ class Image:
self.palette.mode = "RGBA"
else:
self.palette.mode = "RGB"
self.palette.palette = self.im.getpalette()
self.palette.palette = self.im.getpalette()[: palette_length * 3]
if self.im:
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);
Py_INCREF(Py_None);
return Py_None;
return PyLong_FromLong(palettesize * 8 / bits);
}
static PyObject *