@@ -55,7 +55,9 @@ def __init__(self, image: Image.Image) -> None:
5555 if "A" in image .getbands ():
5656 self .intermediate_mode = "LA"
5757
58- self .degenerate = image .convert (self .intermediate_mode ).convert (image .mode )
58+ if self .intermediate_mode != image .mode :
59+ image = image .convert (self .intermediate_mode ).convert (image .mode )
60+ self .degenerate = image
5961
6062
6163class Contrast (_Enhance ):
@@ -68,11 +70,15 @@ class Contrast(_Enhance):
6870
6971 def __init__ (self , image : Image .Image ) -> None :
7072 self .image = image
71- mean = int (ImageStat .Stat (image .convert ("L" )).mean [0 ] + 0.5 )
72- self .degenerate = Image .new ("L" , image .size , mean ).convert (image .mode )
73-
74- if "A" in image .getbands ():
75- self .degenerate .putalpha (image .getchannel ("A" ))
73+ if image .mode != "L" :
74+ image = image .convert ("L" )
75+ mean = int (ImageStat .Stat (image ).mean [0 ] + 0.5 )
76+ self .degenerate = Image .new ("L" , image .size , mean )
77+ if self .degenerate .mode != self .image .mode :
78+ self .degenerate = self .degenerate .convert (self .image .mode )
79+
80+ if "A" in self .image .getbands ():
81+ self .degenerate .putalpha (self .image .getchannel ("A" ))
7682
7783
7884class Brightness (_Enhance ):
0 commit comments