1
0
mirror of https://github.com/ciromattia/kcc synced 2025-12-13 09:46:25 +00:00

Fill detection improvements

This commit is contained in:
Paweł Jastrzębski
2013-09-16 11:20:42 +02:00
parent 74add23c14
commit 1085673010
2 changed files with 25 additions and 13 deletions

View File

@@ -292,9 +292,9 @@ def applyImgOptimization(img, options, overrideQuality=5):
img.cutPageNumber()
img.optimizeImage(options.gamma)
if overrideQuality != 5:
img.resizeImage(options.upscale, options.stretch, options.bordersColor, overrideQuality)
img.resizeImage(options.upscale, options.stretch, options.bordersColor, overrideQuality, options.webtoon)
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:
img.quantizeImage()

View File

@@ -190,12 +190,12 @@ class ComicPage:
palImg.putpalette(self.palette)
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
if bordersColor:
fill = bordersColor
else:
fill = self.getImageFill()
fill = self.getImageFill(isWebToon)
if qualityMode == 0:
size = (self.size[0], self.size[1])
generateBorder = True
@@ -436,21 +436,33 @@ class ComicPage:
else:
return True
def getImageFill(self):
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]))
def getImageFill(self, isWebToon):
fill = 0
fill += self.getImageHistogram(imageT)
fill += self.getImageHistogram(imageB)
if fill == 2:
return 'black'
elif fill == 0:
return 'white'
if 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 += self.getImageHistogram(imageT)
fill += self.getImageHistogram(imageB)
else:
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)
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:
return 'black'
else: