1
0
mirror of https://github.com/ciromattia/kcc synced 2026-01-27 23:47:41 +00:00

Added high quality Panel View

This commit is contained in:
Paweł Jastrzębski
2013-03-16 21:53:23 +01:00
parent c484cc8fff
commit a597173b71
2 changed files with 8 additions and 5 deletions

View File

@@ -293,7 +293,8 @@ def applyImgOptimization(img, isSplit=False, toRight=False):
img.cropWhiteSpace(10.0)
if options.cutpagenumbers:
img.cutPageNumber()
img.resizeImage(options.upscale, options.stretch, options.black_borders, isSplit, toRight, options.landscapemode)
img.resizeImage(options.upscale, options.stretch, options.black_borders, isSplit, toRight, options.landscapemode,
options.panelviewhq)
img.optimizeImage(options.gamma)
if not options.notquantize:
img.quantizeImage()

View File

@@ -144,12 +144,16 @@ class ComicPage:
self.image = self.image.quantize(palette=palImg)
def resizeImage(self, upscale=False, stretch=False, black_borders=False, isSplit=False, toRight=False,
landscapeMode=False):
landscapeMode=False, panelViewHQ=False):
method = Image.ANTIALIAS
if black_borders:
fill = 'black'
else:
fill = 'white'
if panelViewHQ:
size = (self.panelviewsize[0], self.panelviewsize[1])
else:
size = (self.size[0], self.size[1])
if self.image.size[0] <= self.size[0] and self.image.size[1] <= self.size[1]:
if not upscale:
if isSplit and landscapeMode:
@@ -169,11 +173,9 @@ class ComicPage:
return self.image
else:
method = Image.NEAREST
if stretch:
self.image = self.image.resize(self.size, method)
return self.image
ratioDev = float(self.size[0]) / float(self.size[1])
if (float(self.image.size[0]) / float(self.image.size[1])) < ratioDev:
diff = int(self.image.size[1] * ratioDev) - self.image.size[0]
@@ -183,7 +185,7 @@ class ComicPage:
elif (float(self.image.size[0]) / float(self.image.size[1])) > ratioDev:
diff = int(self.image.size[0] / ratioDev) - self.image.size[1]
self.image = ImageOps.expand(self.image, border=(0, diff / 2), fill=fill)
self.image = ImageOps.fit(self.image, self.size, method=method, centering=(0.5, 0.5))
self.image = ImageOps.fit(self.image, size, method=method, centering=(0.5, 0.5))
return self.image
def splitPage(self, targetdir, righttoleft=False, rotate=False):