@@ -889,7 +889,7 @@ def load(self):
889889 if self .im is not None and self .palette and self .palette .dirty :
890890 # realize palette
891891 mode , arr = self .palette .getdata ()
892- self .im .putpalette (mode , arr )
892+ self .im .putpalette (self . palette . mode , mode , arr )
893893 self .palette .dirty = 0
894894 self .palette .rawmode = None
895895 if "transparency" in self .info and mode in ("LA" , "PA" ):
@@ -899,9 +899,9 @@ def load(self):
899899 self .im .putpalettealphas (self .info ["transparency" ])
900900 self .palette .mode = "RGBA"
901901 else :
902- palette_mode = "RGBA" if mode . startswith ( "RGBA" ) else "RGB"
903- self .palette .mode = palette_mode
904- self . palette . palette = self . im . getpalette ( palette_mode , palette_mode )
902+ self . palette . palette = self . im . getpalette (
903+ self .palette .mode , self . palette . mode
904+ )
905905
906906 if self .im is not None :
907907 if cffi and USE_CFFI_ACCESS :
@@ -2046,7 +2046,7 @@ def putpalette(self, data, rawmode="RGB") -> None:
20462046 palette = ImagePalette .raw (rawmode , data )
20472047 self ._mode = "PA" if "A" in self .mode else "P"
20482048 self .palette = palette
2049- self .palette .mode = "RGB"
2049+ self .palette .mode = "RGBA" if "A" in rawmode else " RGB"
20502050 self .load () # install new palette
20512051
20522052 def putpixel (self , xy , value ):
@@ -2161,7 +2161,7 @@ def remap_palette(self, dest_map, source_palette=None):
21612161 # m_im.putpalette(mapping_palette, 'L') # converts to 'P'
21622162 # or just force it.
21632163 # UNDONE -- this is part of the general issue with palettes
2164- m_im .im .putpalette (palette_mode + ";L" , m_im .palette .tobytes ())
2164+ m_im .im .putpalette (palette_mode , palette_mode + ";L" , m_im .palette .tobytes ())
21652165
21662166 m_im = m_im .convert ("L" )
21672167
0 commit comments