Skip to content

Commit 4f8cfd5

Browse files
authored
Merge pull request #3721 from radarhere/quantize
Update palette in quantize
2 parents 05849ca + 5b9c11b commit 4f8cfd5

3 files changed

Lines changed: 10 additions & 2 deletions

File tree

Tests/test_image_quantize.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,10 @@ def test_octree_quantize(self):
3838

3939
def test_rgba_quantize(self):
4040
image = hopper('RGBA')
41-
image.quantize()
4241
self.assertRaises(ValueError, image.quantize, method=0)
4342

43+
self.assertEqual(image.quantize().convert().mode, "RGBA")
44+
4445
def test_quantize(self):
4546
image = Image.open('Tests/images/caption_6_33_22.png').convert('RGB')
4647
converted = image.quantize()

src/PIL/Image.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1096,7 +1096,13 @@ def quantize(self, colors=256, method=None, kmeans=0, palette=None, dither=1):
10961096
im = self.im.convert("P", dither, palette.im)
10971097
return self._new(im)
10981098

1099-
return self._new(self.im.quantize(colors, method, kmeans))
1099+
im = self._new(self.im.quantize(colors, method, kmeans))
1100+
1101+
from . import ImagePalette
1102+
mode = im.im.getpalettemode()
1103+
im.palette = ImagePalette.ImagePalette(mode, im.im.getpalette(mode, mode))
1104+
1105+
return im
11001106

11011107
def copy(self):
11021108
"""

src/libImaging/Unpack.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1331,6 +1331,7 @@ static struct {
13311331
{"RGB", "BGR;5", 16, ImagingUnpackBGR15}, /* compat */
13321332
{"RGB", "RGBX", 32, copy4},
13331333
{"RGB", "RGBX;L", 32, unpackRGBAL},
1334+
{"RGB", "RGBA;L", 32, unpackRGBAL},
13341335
{"RGB", "BGRX", 32, ImagingUnpackBGRX},
13351336
{"RGB", "XRGB", 24, ImagingUnpackXRGB},
13361337
{"RGB", "XBGR", 32, ImagingUnpackXBGR},

0 commit comments

Comments
 (0)