Skip to content

Commit 0e0cb06

Browse files
authored
Merge pull request #8431 from radarhere/imageenhance
2 parents 07389b2 + 749bec0 commit 0e0cb06

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

src/PIL/ImageEnhance.py

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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

6163
class 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

7884
class Brightness(_Enhance):

0 commit comments

Comments
 (0)