diff --git a/src/calibre/ebooks/epub/from_html.py b/src/calibre/ebooks/epub/from_html.py index a86ca794a4..2adef2bb3a 100644 --- a/src/calibre/ebooks/epub/from_html.py +++ b/src/calibre/ebooks/epub/from_html.py @@ -142,7 +142,7 @@ def resize_cover(im, opts): if delta > 0: nwidth = int(width + delta*(width)) nheight = int(height + delta*(height)) - im = im.resize((int(nwidth), int(nheight)), PILImage.ANTIALIAS).convert('RGB') + im = im.resize((int(nwidth), int(nheight)), PILImage.ANTIALIAS) return im def process_title_page(mi, filelist, htmlfilemap, opts, tdir): @@ -156,35 +156,38 @@ def process_title_page(mi, filelist, htmlfilemap, opts, tdir): metadata_cover = mi.cover if metadata_cover and not os.path.exists(metadata_cover): metadata_cover = None - if metadata_cover is not None: - with open(metadata_cover, 'rb') as src: - try: - im = PILImage.open(src) - if opts.profile.screen_size is not None: - im = resize_cover(im, opts) - metadata_cover = im - except: - metadata_cover = None - - specified_cover = opts.cover - if specified_cover and not os.path.exists(specified_cover): - specified_cover = None - if specified_cover is not None: - with open(specified_cover, 'rb') as src: - try: - im = PILImage.open(src) - if opts.profile.screen_size is not None: - im = resize_cover(im, opts) - specified_cover = im - except: - specified_cover = None - - cover = metadata_cover if specified_cover is None or (opts.prefer_metadata_cover and metadata_cover is not None) else specified_cover + + cpath = '/'.join(('resources', '_cover_.jpg')) + cover_dest = os.path.join(tdir, 'content', *cpath.split('/')) + with open(cover_dest, 'wb') as f_cover_dest: + if metadata_cover is not None: + with open(metadata_cover, 'rb') as src: + try: + im = PILImage.open(src).convert('RGB') + if opts.profile.screen_size is not None: + im = resize_cover(im, opts) + im.save(f_cover_dest, format='jpeg') + metadata_cover = im + except: + metadata_cover = None + + specified_cover = opts.cover + if specified_cover and not os.path.exists(specified_cover): + specified_cover = None + if specified_cover is not None: + with open(specified_cover, 'rb') as src: + try: + im = PILImage.open(src).convert('RGB') + if opts.profile.screen_size is not None: + im = resize_cover(im, opts) + specified_cover = im + im.save(f_cover_dest, format='jpeg') + except: + specified_cover = None + + cover = metadata_cover if specified_cover is None or (opts.prefer_metadata_cover and metadata_cover is not None) else specified_cover + if hasattr(cover, 'save'): - cpath = '/'.join(('resources', '_cover_.jpg')) - cover_dest = os.path.join(tdir, 'content', *cpath.split('/')) - with open(cover_dest, 'wb') as f: - im.save(f, format='jpeg') titlepage = '''\
@@ -197,13 +200,14 @@ def process_title_page(mi, filelist, htmlfilemap, opts, tdir): - '''%cpath + '''%cpath tp = 'calibre_title_page.html' if old_title_page is None else old_title_page tppath = os.path.join(tdir, 'content', tp) with open(tppath, 'wb') as f: f.write(titlepage) return tp if old_title_page is None else None, True - + elif os.path.exists(cover_dest): + os.remove(cover_dest) return None, old_title_page is not None diff --git a/src/calibre/gui2/images/mimetypes/epub.svg b/src/calibre/gui2/images/mimetypes/epub.svg index cafef17b80..2b72b9e180 100644 --- a/src/calibre/gui2/images/mimetypes/epub.svg +++ b/src/calibre/gui2/images/mimetypes/epub.svg @@ -1,23 +1,3381 @@ - - - + + + + + + + + + + +]> + diff --git a/src/calibre/linux.py b/src/calibre/linux.py index 096f4ef3f9..c4d0a3f9a0 100644 --- a/src/calibre/linux.py +++ b/src/calibre/linux.py @@ -399,7 +399,7 @@ def install_man_pages(fatal_errors): prog = src[:src.index('=')].strip() if prog in ('prs500', 'pdf-meta', 'epub-meta', 'lit-meta', 'markdown-calibre', 'calibre-debug', 'fb2-meta', - 'calibre-fontconfig', 'calibre-parallel', + 'calibre-fontconfig', 'calibre-parallel', 'odt-meta', 'rb-meta', 'imp-meta'): continue