From 0ee02f2efde76b499f0b04459b203a40619fcbf6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Jastrz=C4=99bski?= Date: Wed, 18 Sep 2013 10:35:07 +0200 Subject: [PATCH] Fill detection final improvements --- kcc/image.py | 38 ++++++++++++++++++-------------------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/kcc/image.py b/kcc/image.py index 80e2e9a..dfa40b5 100755 --- a/kcc/image.py +++ b/kcc/image.py @@ -421,31 +421,29 @@ class ComicPage: def getImageFill(self, isWebToon): fill = 0 if isWebToon or self.rotated: - 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) + fill += self.getImageHistogram(self.image.crop((0, 0, self.image.size[0], 1))) + fill += self.getImageHistogram(self.image.crop((0, self.image.size[1]-1, self.image.size[0], + self.image.size[1]))) 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) + fill += self.getImageHistogram(self.image.crop((0, 0, 1, self.image.size[1]))) + fill += self.getImageHistogram(self.image.crop((self.image.size[0]-1, 0, self.image.size[0], + self.image.size[1]))) if fill == 2: return 'black' elif fill == 0: return 'white' else: - if isWebToon or self.rotated: - 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) + bBox = self.image.getbbox() + wBox = ImageOps.invert(self.image).getbbox() + if bBox is None: + bBox = 0 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' + bBox = (bBox[2]-bBox[0])*(bBox[3]-bBox[1]) + if wBox is None: + wBox = 0 else: - return 'white' \ No newline at end of file + wBox = (wBox[2]-wBox[0])*(wBox[3]-wBox[1]) + if wBox <= bBox: + return "white" + else: + return "black" \ No newline at end of file