mirror of
https://github.com/ciromattia/kcc
synced 2025-12-21 21:51:52 +00:00
Fill detection improvements
This commit is contained in:
@@ -292,9 +292,9 @@ def applyImgOptimization(img, options, overrideQuality=5):
|
|||||||
img.cutPageNumber()
|
img.cutPageNumber()
|
||||||
img.optimizeImage(options.gamma)
|
img.optimizeImage(options.gamma)
|
||||||
if overrideQuality != 5:
|
if overrideQuality != 5:
|
||||||
img.resizeImage(options.upscale, options.stretch, options.bordersColor, overrideQuality)
|
img.resizeImage(options.upscale, options.stretch, options.bordersColor, overrideQuality, options.webtoon)
|
||||||
else:
|
else:
|
||||||
img.resizeImage(options.upscale, options.stretch, options.bordersColor, options.quality)
|
img.resizeImage(options.upscale, options.stretch, options.bordersColor, options.quality, options.webtoon)
|
||||||
if options.forcepng and not options.forcecolor:
|
if options.forcepng and not options.forcecolor:
|
||||||
img.quantizeImage()
|
img.quantizeImage()
|
||||||
|
|
||||||
|
|||||||
34
kcc/image.py
34
kcc/image.py
@@ -190,12 +190,12 @@ class ComicPage:
|
|||||||
palImg.putpalette(self.palette)
|
palImg.putpalette(self.palette)
|
||||||
self.image = self.image.quantize(palette=palImg)
|
self.image = self.image.quantize(palette=palImg)
|
||||||
|
|
||||||
def resizeImage(self, upscale=False, stretch=False, bordersColor=None, qualityMode=0):
|
def resizeImage(self, upscale=False, stretch=False, bordersColor=None, qualityMode=0, isWebToon=False):
|
||||||
method = Image.ANTIALIAS
|
method = Image.ANTIALIAS
|
||||||
if bordersColor:
|
if bordersColor:
|
||||||
fill = bordersColor
|
fill = bordersColor
|
||||||
else:
|
else:
|
||||||
fill = self.getImageFill()
|
fill = self.getImageFill(isWebToon)
|
||||||
if qualityMode == 0:
|
if qualityMode == 0:
|
||||||
size = (self.size[0], self.size[1])
|
size = (self.size[0], self.size[1])
|
||||||
generateBorder = True
|
generateBorder = True
|
||||||
@@ -436,21 +436,33 @@ class ComicPage:
|
|||||||
else:
|
else:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def getImageFill(self):
|
def getImageFill(self, isWebToon):
|
||||||
imageT = self.image.crop((0, 0, self.image.size[0], 1))
|
|
||||||
imageB = self.image.crop((0, self.image.size[1]-1, self.image.size[0], self.image.size[1]))
|
|
||||||
fill = 0
|
fill = 0
|
||||||
fill += self.getImageHistogram(imageT)
|
if isWebToon:
|
||||||
fill += self.getImageHistogram(imageB)
|
imageT = self.image.crop((0, 0, self.image.size[0], 1))
|
||||||
if fill == 2:
|
imageB = self.image.crop((0, self.image.size[1]-1, self.image.size[0], self.image.size[1]))
|
||||||
return 'black'
|
fill += self.getImageHistogram(imageT)
|
||||||
elif fill == 0:
|
fill += self.getImageHistogram(imageB)
|
||||||
return 'white'
|
|
||||||
else:
|
else:
|
||||||
imageL = self.image.crop((0, 0, 1, self.image.size[1]))
|
imageL = self.image.crop((0, 0, 1, self.image.size[1]))
|
||||||
imageR = self.image.crop((self.image.size[0]-1, 0, self.image.size[0], self.image.size[1]))
|
imageR = self.image.crop((self.image.size[0]-1, 0, self.image.size[0], self.image.size[1]))
|
||||||
fill += self.getImageHistogram(imageL)
|
fill += self.getImageHistogram(imageL)
|
||||||
fill += self.getImageHistogram(imageR)
|
fill += self.getImageHistogram(imageR)
|
||||||
|
if fill == 2:
|
||||||
|
return 'black'
|
||||||
|
elif fill == 0:
|
||||||
|
return 'white'
|
||||||
|
else:
|
||||||
|
if isWebToon:
|
||||||
|
imageL = self.image.crop((0, 0, 1, self.image.size[1]))
|
||||||
|
imageR = self.image.crop((self.image.size[0]-1, 0, self.image.size[0], self.image.size[1]))
|
||||||
|
fill += self.getImageHistogram(imageL)
|
||||||
|
fill += self.getImageHistogram(imageR)
|
||||||
|
else:
|
||||||
|
imageT = self.image.crop((0, 0, self.image.size[0], 1))
|
||||||
|
imageB = self.image.crop((0, self.image.size[1]-1, self.image.size[0], self.image.size[1]))
|
||||||
|
fill += self.getImageHistogram(imageT)
|
||||||
|
fill += self.getImageHistogram(imageB)
|
||||||
if fill >= 2:
|
if fill >= 2:
|
||||||
return 'black'
|
return 'black'
|
||||||
else:
|
else:
|
||||||
|
|||||||
Reference in New Issue
Block a user