1
0
mirror of https://github.com/ciromattia/kcc synced 2025-12-12 17:26:23 +00:00

fix color autocontrast (#1026)

This commit is contained in:
Alex Xu
2025-07-11 16:28:19 -07:00
committed by GitHub
parent 95f9a3cda9
commit 67714a9b06
2 changed files with 5 additions and 8 deletions

View File

@@ -639,8 +639,8 @@ def imgFileProcessing(work):
workImg = image.ComicPageParser((dirpath, afile), opt)
for i in workImg.payload:
img = image.ComicPage(opt, *i)
is_not_color = not opt.forcecolor or not img.color
if is_not_color:
is_output_grayscale = not opt.forcecolor or not img.color
if is_output_grayscale:
img.convertToGrayscale()
if opt.cropping == 2 and not opt.webtoon:
img.cropPageNumber(opt.croppingp, opt.croppingm)
@@ -649,11 +649,10 @@ def imgFileProcessing(work):
if opt.interpanelcrop > 0:
img.cropInterPanelEmptySections("horizontal" if opt.interpanelcrop == 1 else "both")
img.gammaCorrectImage()
if is_not_color:
img.autocontrastImage()
img.autocontrastImage()
img.resizeImage()
img.optimizeForDisplay(opt.reducerainbow)
if is_not_color and opt.forcepng:
if is_output_grayscale and opt.forcepng:
img.quantizeImage()
output.append(img.saveToDir())
return output

View File

@@ -353,9 +353,7 @@ class ComicPage:
self.image = Image.eval(self.image, lambda a: int(255 * (a / 255.) ** gamma))
def autocontrastImage(self):
# autocontrast on non grayscale images has unexpected results
# since it autocontrasts each color channel separately
self.image = ImageOps.autocontrast(self.image)
self.image = ImageOps.autocontrast(self.image, preserve_tone=True)
def convertToGrayscale(self):
self.image = self.image.convert('L')