mirror of
https://github.com/ciromattia/kcc
synced 2025-12-13 01:36:27 +00:00
Fixes to grayscale pages in forcecolor mode (#978)
* Fix bit depth of non-color pages in forcecolor mode * Optimization for JPEG non-color pages in forcecolor mode
This commit is contained in:
@@ -642,8 +642,8 @@ def imgFileProcessing(work):
|
|||||||
img.autocontrastImage()
|
img.autocontrastImage()
|
||||||
img.resizeImage()
|
img.resizeImage()
|
||||||
img.optimizeForDisplay(opt.reducerainbow)
|
img.optimizeForDisplay(opt.reducerainbow)
|
||||||
if opt.forcepng and not opt.forcecolor:
|
if not opt.forcecolor or (opt.forcecolor and not workImg.color):
|
||||||
img.quantizeImage()
|
img.convertToGrayscaleOrQuantize()
|
||||||
output.append(img.saveToDir())
|
output.append(img.saveToDir())
|
||||||
return output
|
return output
|
||||||
except Exception:
|
except Exception:
|
||||||
|
|||||||
@@ -304,8 +304,6 @@ class ComicPage:
|
|||||||
def saveToDir(self):
|
def saveToDir(self):
|
||||||
try:
|
try:
|
||||||
flags = []
|
flags = []
|
||||||
if not self.opt.forcecolor and not self.opt.forcepng:
|
|
||||||
self.image = self.image.convert('L')
|
|
||||||
if self.rotated:
|
if self.rotated:
|
||||||
flags.append('Rotated')
|
flags.append('Rotated')
|
||||||
if self.fill != 'white':
|
if self.fill != 'white':
|
||||||
@@ -353,6 +351,12 @@ class ComicPage:
|
|||||||
else:
|
else:
|
||||||
self.image = ImageOps.autocontrast(Image.eval(self.image, lambda a: int(255 * (a / 255.) ** gamma)))
|
self.image = ImageOps.autocontrast(Image.eval(self.image, lambda a: int(255 * (a / 255.) ** gamma)))
|
||||||
|
|
||||||
|
def convertToGrayscaleOrQuantize(self):
|
||||||
|
if self.opt.forcepng:
|
||||||
|
self.quantizeImage()
|
||||||
|
else:
|
||||||
|
self.image = self.image.convert('L')
|
||||||
|
|
||||||
def quantizeImage(self):
|
def quantizeImage(self):
|
||||||
palImg = Image.new('P', (1, 1))
|
palImg = Image.new('P', (1, 1))
|
||||||
palImg.putpalette(self.palette)
|
palImg.putpalette(self.palette)
|
||||||
|
|||||||
Reference in New Issue
Block a user