mirror of
https://github.com/ciromattia/kcc
synced 2026-09-29 14:12:31 +00:00
Replace KFX (does not work) with KFX (Send to Kindle EPUB) (#1309)
* add better kfx output * fix kfx res * fix bug * fix bug * no errors * kfx defaults to PNG * KFX 200 MB default * clarify send to kindle * fit close images * adjust * refactor contain * initial fixes
This commit is contained in:
@@ -29,6 +29,7 @@ from PIL import Image, ImageOps, ImageFile, ImageChops, ImageDraw
|
||||
from .rainbow_artifacts_eraser import erase_rainbow_artifacts
|
||||
from .page_number_crop_alg import get_bbox_crop_margin_page_number, get_bbox_crop_margin
|
||||
from .inter_panel_crop_alg import crop_empty_inter_panel
|
||||
from .shared import get_contain_resolution
|
||||
|
||||
AUTO_CROP_THRESHOLD = 0.015
|
||||
ImageFile.LOAD_TRUNCATED_IMAGES = True
|
||||
@@ -517,7 +518,17 @@ class ComicPage:
|
||||
ratio_device = float(self.size[1]) / float(self.size[0])
|
||||
ratio_image = float(self.image.size[1]) / float(self.image.size[0])
|
||||
method = self.resize_method()
|
||||
if self.opt.stretch:
|
||||
if self.opt.kfx:
|
||||
ratio_kfx = self.opt.kfx_resolution[1] / self.opt.kfx_resolution[0]
|
||||
contain_size = get_contain_resolution(self.image, self.size)
|
||||
if abs(ratio_image - ratio_kfx) < AUTO_CROP_THRESHOLD:
|
||||
if contain_size[0] > self.opt.kfx_resolution[0] or contain_size[1] > self.opt.kfx_resolution[1]:
|
||||
self.image = ImageOps.fit(self.image, self.opt.kfx_resolution, method=method)
|
||||
else:
|
||||
self.image = ImageOps.pad(self.image, self.opt.kfx_resolution, method=method, color=self.fill)
|
||||
else:
|
||||
self.image = ImageOps.pad(self.image, self.opt.kfx_resolution, method=method, color=self.fill)
|
||||
elif self.opt.stretch:
|
||||
self.image = self.image.resize(self.size, method)
|
||||
elif method == Image.Resampling.BICUBIC and not self.opt.upscale:
|
||||
pass
|
||||
@@ -526,7 +537,7 @@ class ComicPage:
|
||||
self.image = ImageOps.fit(self.image, self.size, method=method)
|
||||
elif abs(ratio_image - ratio_device) < AUTO_CROP_THRESHOLD:
|
||||
self.image = ImageOps.fit(self.image, self.size, method=method)
|
||||
elif (self.opt.format in ('CBZ', 'PDF') or self.opt.kfx) and not self.opt.white_borders:
|
||||
elif (self.opt.format in ('CBZ', 'PDF')) and not self.opt.white_borders:
|
||||
self.image = ImageOps.pad(self.image, self.size, method=method, color=self.fill)
|
||||
else:
|
||||
self.image = ImageOps.contain(self.image, self.size, method=method)
|
||||
|
||||
Reference in New Issue
Block a user