From 869b771320395fc445d04a98c0de6ec99bc7f2d9 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 4 May 2016 20:52:15 +0530 Subject: [PATCH] Remove IM from PDF Input --- src/calibre/ebooks/pdf/pdftohtml.py | 14 ++++++-------- src/calibre/utils/img.py | 3 +++ 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/calibre/ebooks/pdf/pdftohtml.py b/src/calibre/ebooks/pdf/pdftohtml.py index 20809e692c..635dbfcd8e 100644 --- a/src/calibre/ebooks/pdf/pdftohtml.py +++ b/src/calibre/ebooks/pdf/pdftohtml.py @@ -151,14 +151,12 @@ def parse_outline(raw, output_dir): def flip_image(img, flip): - from calibre.utils.magick import Image - im = Image() - im.open(img) - if b'x' in flip: - im.flip(True) - if b'y' in flip: - im.flip() - im.save(img) + from calibre.utils.img import flip_image, image_and_format_from_data, image_to_data + with lopen(img, 'r+b') as f: + img, fmt = image_and_format_from_data(f.read()) + img = flip_image(img, horizontal=b'x' in flip, vertical=b'y' in flip) + f.seek(0), f.truncate() + f.write(image_to_data(img, fmt=fmt)) def flip_images(raw): for match in re.finditer(b']+/?>', raw, flags=re.I): diff --git a/src/calibre/utils/img.py b/src/calibre/utils/img.py index 09165d07b2..96dc9c6a4b 100644 --- a/src/calibre/utils/img.py +++ b/src/calibre/utils/img.py @@ -188,6 +188,9 @@ class Canvas(object): def export(self, fmt='JPEG', compression_quality=95): return image_to_data(self.img, compression_quality=compression_quality, fmt=fmt) +def flip_image(img, horizontal=False, vertical=False): + return image_from_data(img).mirrored(horizontal, vertical) + def run_optimizer(file_path, cmd, as_filter=False, input_data=None): file_path = os.path.abspath(file_path) cwd = os.path.dirname(file_path)