diff --git a/Tests/test_image.py b/Tests/test_image.py index 83b027aa2..4b8ef02cd 100644 --- a/Tests/test_image.py +++ b/Tests/test_image.py @@ -1076,6 +1076,12 @@ class TestImage: assert im.palette is not None assert im.palette.colors[(27, 35, 6, 214)] == 24 + def test_merge_pa(self) -> None: + p = hopper("P") + a = Image.new("L", p.size) + pa = Image.merge("PA", (p, a)) + assert p.getpalette() == pa.getpalette() + def test_constants(self) -> None: for enum in ( Image.Transpose, diff --git a/src/_imaging.c b/src/_imaging.c index fbfc0e41a..6ab8e010d 100644 --- a/src/_imaging.c +++ b/src/_imaging.c @@ -2419,7 +2419,12 @@ _merge(PyObject *self, PyObject *args) { bands[3] = band3->image; } - return PyImagingNew(ImagingMerge(mode, bands)); + Imaging imOut = ImagingMerge(mode, bands); + if (!imOut) { + return NULL; + } + ImagingCopyPalette(imOut, bands[0]); + return PyImagingNew(imOut); } static PyObject *