mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
During Mobi generation convert image types other than GIF and JPEG.
This commit is contained in:
parent
cc0185ba92
commit
c2cd135cf8
@ -256,15 +256,21 @@ class MobiWriter(object):
|
|||||||
self._text_nrecords = nrecords
|
self._text_nrecords = nrecords
|
||||||
|
|
||||||
def _rescale_image(self, data, maxsizeb, dimen=None):
|
def _rescale_image(self, data, maxsizeb, dimen=None):
|
||||||
|
image = Image.open(StringIO(data))
|
||||||
|
format = image.format
|
||||||
|
changed = False
|
||||||
|
if image.format not in ('JPEG', 'GIF'):
|
||||||
|
format = 'GIF'
|
||||||
|
changed = True
|
||||||
if dimen is not None:
|
if dimen is not None:
|
||||||
image = Image.open(StringIO(data))
|
|
||||||
image.thumbnail(dimen, Image.ANTIALIAS)
|
image.thumbnail(dimen, Image.ANTIALIAS)
|
||||||
|
changed = True
|
||||||
|
if changed:
|
||||||
data = StringIO()
|
data = StringIO()
|
||||||
image.save(data, image.format)
|
image.save(data, format)
|
||||||
data = data.getvalue()
|
data = data.getvalue()
|
||||||
if len(data) < maxsizeb:
|
if len(data) < maxsizeb:
|
||||||
return data
|
return data
|
||||||
image = Image.open(StringIO(data))
|
|
||||||
for quality in xrange(95, -1, -1):
|
for quality in xrange(95, -1, -1):
|
||||||
data = StringIO()
|
data = StringIO()
|
||||||
image.save(data, 'JPEG', quality=quality)
|
image.save(data, 'JPEG', quality=quality)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user