Do not convert image unnecessarily

This commit is contained in:
Andrew Murray 2024-10-01 07:11:24 +10:00
parent c6b08ef32c
commit 749bec097c

View File

@ -55,7 +55,9 @@ class Color(_Enhance):
if "A" in image.getbands(): if "A" in image.getbands():
self.intermediate_mode = "LA" self.intermediate_mode = "LA"
self.degenerate = image.convert(self.intermediate_mode).convert(image.mode) if self.intermediate_mode != image.mode:
image = image.convert(self.intermediate_mode).convert(image.mode)
self.degenerate = image
class Contrast(_Enhance): class Contrast(_Enhance):
@ -68,11 +70,15 @@ class Contrast(_Enhance):
def __init__(self, image: Image.Image) -> None: def __init__(self, image: Image.Image) -> None:
self.image = image self.image = image
mean = int(ImageStat.Stat(image.convert("L")).mean[0] + 0.5) if image.mode != "L":
self.degenerate = Image.new("L", image.size, mean).convert(image.mode) image = image.convert("L")
mean = int(ImageStat.Stat(image).mean[0] + 0.5)
self.degenerate = Image.new("L", image.size, mean)
if self.degenerate.mode != self.image.mode:
self.degenerate = self.degenerate.convert(self.image.mode)
if "A" in image.getbands(): if "A" in self.image.getbands():
self.degenerate.putalpha(image.getchannel("A")) self.degenerate.putalpha(self.image.getchannel("A"))
class Brightness(_Enhance): class Brightness(_Enhance):