diff --git a/src/calibre/library/server/browse.py b/src/calibre/library/server/browse.py index 87b3573873..451890bb9e 100644 --- a/src/calibre/library/server/browse.py +++ b/src/calibre/library/server/browse.py @@ -12,12 +12,11 @@ from collections import OrderedDict import cherrypy from calibre.constants import filesystem_encoding, config_dir -from calibre import (isbytestring, force_unicode, fit_image, - prepare_string_for_xml, sanitize_file_name2) +from calibre import (isbytestring, force_unicode, prepare_string_for_xml, sanitize_file_name2) from calibre.utils.filenames import ascii_filename from calibre.utils.config import prefs, JSONConfig from calibre.utils.icu import sort_key -from calibre.utils.magick import Image +from calibre.utils.img import scale_image from calibre.library.comments import comments_to_html from calibre.library.server import custom_fields_to_display from calibre.library.field_metadata import category_icon_map @@ -333,14 +332,7 @@ class BrowseServer(object): data = I(name, data=True) except: raise cherrypy.HTTPError(404, 'no icon named: %r'%name) - img = Image() - img.load(data) - width, height = img.size - scaled, width, height = fit_image(width, height, 48, 48) - if scaled: - img.size = (width, height) - - self.__browse_icon_cache__[name] = img.export('png') + self.__browse_icon_cache__[name] = scale_image(data, 48, 48, as_png=True)[-1] return self.__browse_icon_cache__[name] def browse_toplevel(self): diff --git a/src/calibre/library/server/content.py b/src/calibre/library/server/content.py index ef7a7a7b0c..24c3c4f5f8 100644 --- a/src/calibre/library/server/content.py +++ b/src/calibre/library/server/content.py @@ -9,13 +9,12 @@ import re, os, posixpath import cherrypy -from calibre import fit_image, guess_type +from calibre import guess_type from calibre.utils.date import fromtimestamp, as_utc +from calibre.utils.img import save_cover_data_to, scale_image from calibre.library.caches import SortKeyGenerator from calibre.library.save_to_disk import find_plugboard from calibre.ebooks.metadata import authors_to_string -from calibre.utils.magick.draw import (save_cover_data_to, Image, - thumbnail as generate_thumbnail) from calibre.utils.filenames import ascii_filename from calibre.ebooks.metadata.opf2 import metadata_to_opf from calibre.utils.config import tweaks @@ -181,19 +180,9 @@ class ContentServer(object): quality = 50 elif quality > 99: quality = 99 - return generate_thumbnail(cover, width=thumb_width, - height=thumb_height, compression_quality=quality)[-1] + return scale_image(cover, thumb_width, thumb_height, compression_quality=quality)[-1] - img = Image() - img.load(cover) - width, height = img.size - scaled, width, height = fit_image(width, height, - thumb_width if thumbnail else self.max_cover_width, - thumb_height if thumbnail else self.max_cover_height) - if not scaled: - return cover - return save_cover_data_to(img, 'img.jpg', return_data=True, - resize_to=(width, height)) + return save_cover_data_to(cover, None, minify_to=(self.max_cover_width, self.max_cover_height)) except Exception as err: import traceback cherrypy.log.error('Failed to generate cover:')