mirror of
https://github.com/ciromattia/kcc
synced 2025-12-13 01:36:27 +00:00
add tome text for splits (#963)
This commit is contained in:
@@ -423,7 +423,7 @@ def buildOPF(dstdir, title, filelist, cover=None):
|
|||||||
"</container>"])
|
"</container>"])
|
||||||
f.close()
|
f.close()
|
||||||
|
|
||||||
def buildEPUB(path, chapternames, tomenumber, ischunked, cover: image.Cover):
|
def buildEPUB(path, chapternames, tomenumber, ischunked, cover: image.Cover, len_tomes=0):
|
||||||
filelist = []
|
filelist = []
|
||||||
chapterlist = []
|
chapterlist = []
|
||||||
os.mkdir(os.path.join(path, 'OEBPS', 'Text'))
|
os.mkdir(os.path.join(path, 'OEBPS', 'Text'))
|
||||||
@@ -503,7 +503,7 @@ def buildEPUB(path, chapternames, tomenumber, ischunked, cover: image.Cover):
|
|||||||
"}\n"])
|
"}\n"])
|
||||||
f.close()
|
f.close()
|
||||||
build_html_start = perf_counter()
|
build_html_start = perf_counter()
|
||||||
cover.save_to_epub(os.path.join(path, 'OEBPS', 'Images', 'cover.jpg'), tomenumber)
|
cover.save_to_epub(os.path.join(path, 'OEBPS', 'Images', 'cover.jpg'), tomenumber, len_tomes)
|
||||||
options.covers.append((cover, options.uuid))
|
options.covers.append((cover, options.uuid))
|
||||||
for dirpath, dirnames, filenames in os.walk(os.path.join(path, 'OEBPS', 'Images')):
|
for dirpath, dirnames, filenames in os.walk(os.path.join(path, 'OEBPS', 'Images')):
|
||||||
chapter = False
|
chapter = False
|
||||||
@@ -1284,7 +1284,7 @@ def makeBook(source, qtgui=None):
|
|||||||
else:
|
else:
|
||||||
print("Creating EPUB file...")
|
print("Creating EPUB file...")
|
||||||
if len(tomes) > 1:
|
if len(tomes) > 1:
|
||||||
buildEPUB(tome, chapterNames, tomeNumber, True, cover)
|
buildEPUB(tome, chapterNames, tomeNumber, True, cover, len(tomes))
|
||||||
filepath.append(getOutputFilename(source, options.output, '.epub', ' ' + str(tomeNumber)))
|
filepath.append(getOutputFilename(source, options.output, '.epub', ' ' + str(tomeNumber)))
|
||||||
else:
|
else:
|
||||||
buildEPUB(tome, chapterNames, tomeNumber, False, cover)
|
buildEPUB(tome, chapterNames, tomeNumber, False, cover)
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ import io
|
|||||||
import os
|
import os
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
import mozjpeg_lossless_optimization
|
import mozjpeg_lossless_optimization
|
||||||
from PIL import Image, ImageOps, ImageStat, ImageChops, ImageFilter
|
from PIL import Image, ImageOps, ImageStat, ImageChops, ImageFilter, ImageDraw
|
||||||
from .page_number_crop_alg import get_bbox_crop_margin_page_number, get_bbox_crop_margin
|
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 .inter_panel_crop_alg import crop_empty_inter_panel
|
||||||
|
|
||||||
@@ -449,13 +449,24 @@ class Cover:
|
|||||||
else:
|
else:
|
||||||
self.image = self.image.crop((w/2 + w * 0.03, 0, w, h))
|
self.image = self.image.crop((w/2 + w * 0.03, 0, w, h))
|
||||||
|
|
||||||
def save_to_epub(self, target, tomeid):
|
def save_to_epub(self, target, tomeid, len_tomes=0):
|
||||||
if tomeid == 0:
|
|
||||||
self.tomeid = 1
|
|
||||||
else:
|
|
||||||
self.tomeid = tomeid
|
|
||||||
try:
|
try:
|
||||||
self.image.save(target, "JPEG", optimize=1, quality=85)
|
if tomeid == 0:
|
||||||
|
self.image.save(target, "JPEG", optimize=1, quality=85)
|
||||||
|
else:
|
||||||
|
copy = self.image.copy()
|
||||||
|
draw = ImageDraw.Draw(copy)
|
||||||
|
w, h = copy.size
|
||||||
|
draw.text(
|
||||||
|
xy=(w/2, h * .85),
|
||||||
|
text=f'{tomeid}/{len_tomes}',
|
||||||
|
anchor='ms',
|
||||||
|
font_size=h//7,
|
||||||
|
fill=255,
|
||||||
|
stroke_fill=0,
|
||||||
|
stroke_width=25
|
||||||
|
)
|
||||||
|
copy.save(target, "JPEG", optimize=1, quality=85)
|
||||||
except IOError:
|
except IOError:
|
||||||
raise RuntimeError('Failed to save cover.')
|
raise RuntimeError('Failed to save cover.')
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user