Remove ImageMagick from the legacy server

This commit is contained in:
Kovid Goyal 2016-05-04 18:00:18 +05:30
parent 173be501a7
commit 18cb1d152e
2 changed files with 7 additions and 26 deletions

View File

@ -12,12 +12,11 @@ from collections import OrderedDict
import cherrypy import cherrypy
from calibre.constants import filesystem_encoding, config_dir from calibre.constants import filesystem_encoding, config_dir
from calibre import (isbytestring, force_unicode, fit_image, from calibre import (isbytestring, force_unicode, prepare_string_for_xml, sanitize_file_name2)
prepare_string_for_xml, sanitize_file_name2)
from calibre.utils.filenames import ascii_filename from calibre.utils.filenames import ascii_filename
from calibre.utils.config import prefs, JSONConfig from calibre.utils.config import prefs, JSONConfig
from calibre.utils.icu import sort_key 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.comments import comments_to_html
from calibre.library.server import custom_fields_to_display from calibre.library.server import custom_fields_to_display
from calibre.library.field_metadata import category_icon_map from calibre.library.field_metadata import category_icon_map
@ -333,14 +332,7 @@ class BrowseServer(object):
data = I(name, data=True) data = I(name, data=True)
except: except:
raise cherrypy.HTTPError(404, 'no icon named: %r'%name) raise cherrypy.HTTPError(404, 'no icon named: %r'%name)
img = Image() self.__browse_icon_cache__[name] = scale_image(data, 48, 48, as_png=True)[-1]
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')
return self.__browse_icon_cache__[name] return self.__browse_icon_cache__[name]
def browse_toplevel(self): def browse_toplevel(self):

View File

@ -9,13 +9,12 @@ import re, os, posixpath
import cherrypy 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.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.caches import SortKeyGenerator
from calibre.library.save_to_disk import find_plugboard from calibre.library.save_to_disk import find_plugboard
from calibre.ebooks.metadata import authors_to_string 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.utils.filenames import ascii_filename
from calibre.ebooks.metadata.opf2 import metadata_to_opf from calibre.ebooks.metadata.opf2 import metadata_to_opf
from calibre.utils.config import tweaks from calibre.utils.config import tweaks
@ -181,19 +180,9 @@ class ContentServer(object):
quality = 50 quality = 50
elif quality > 99: elif quality > 99:
quality = 99 quality = 99
return generate_thumbnail(cover, width=thumb_width, return scale_image(cover, thumb_width, thumb_height, compression_quality=quality)[-1]
height=thumb_height, compression_quality=quality)[-1]
img = Image() return save_cover_data_to(cover, None, minify_to=(self.max_cover_width, self.max_cover_height))
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))
except Exception as err: except Exception as err:
import traceback import traceback
cherrypy.log.error('Failed to generate cover:') cherrypy.log.error('Failed to generate cover:')