@@ -873,7 +873,7 @@ def load(self):
873873 if self .im is not None and self .palette and self .palette .dirty :
874874 # realize palette
875875 mode , arr = self .palette .getdata ()
876- self .im .putpalette (mode , arr )
876+ self .im .putpalette (self . palette . mode , mode , arr )
877877 self .palette .dirty = 0
878878 self .palette .rawmode = None
879879 if "transparency" in self .info and mode in ("LA" , "PA" ):
@@ -883,9 +883,9 @@ def load(self):
883883 self .im .putpalettealphas (self .info ["transparency" ])
884884 self .palette .mode = "RGBA"
885885 else :
886- palette_mode = "RGBA" if mode . startswith ( "RGBA" ) else "RGB"
887- self .palette .mode = palette_mode
888- self . palette . palette = self . im . getpalette ( palette_mode , palette_mode )
886+ self . palette . palette = self . im . getpalette (
887+ self .palette .mode , self . palette . mode
888+ )
889889
890890 if self .im is not None :
891891 if cffi and USE_CFFI_ACCESS :
@@ -1998,7 +1998,7 @@ def putpalette(self, data, rawmode="RGB") -> None:
19981998 palette = ImagePalette .raw (rawmode , data )
19991999 self ._mode = "PA" if "A" in self .mode else "P"
20002000 self .palette = palette
2001- self .palette .mode = "RGB"
2001+ self .palette .mode = "RGBA" if "A" in rawmode else " RGB"
20022002 self .load () # install new palette
20032003
20042004 def putpixel (self , xy , value ):
@@ -2113,7 +2113,7 @@ def remap_palette(self, dest_map, source_palette=None):
21132113 # m_im.putpalette(mapping_palette, 'L') # converts to 'P'
21142114 # or just force it.
21152115 # UNDONE -- this is part of the general issue with palettes
2116- m_im .im .putpalette (palette_mode + ";L" , m_im .palette .tobytes ())
2116+ m_im .im .putpalette (palette_mode , palette_mode + ";L" , m_im .palette .tobytes ())
21172117
21182118 m_im = m_im .convert ("L" )
21192119
0 commit comments