From 2da325b72414ef43b3db9713b1c46d97685171bb Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Wed, 6 Sep 2017 20:10:18 +0100 Subject: Move WMF image handler to recipes directory --- mammoth/images.py | 76 ------------------------------------------------------- 1 file changed, 76 deletions(-) (limited to 'mammoth') diff --git a/mammoth/images.py b/mammoth/images.py index 9cc358c..9dba353 100644 --- a/mammoth/images.py +++ b/mammoth/images.py @@ -1,9 +1,4 @@ import base64 -import io -import os -import shutil -import subprocess -import tempfile from . import html @@ -30,74 +25,3 @@ def data_uri(image): return { "src": "data:{0};base64,{1}".format(image.content_type, encoded_src) } - - -_wmf_extensions = { - "image/x-wmf": ".wmf", - "image/x-emf": ".emf", -} - - -def libreoffice_wmf_conversion(post_process=None): - if post_process is None: - post_process = lambda x: x - - def convert_image(image): - wmf_extension = _wmf_extensions.get(image.content_type) - if wmf_extension is None: - return image - else: - temporary_directory = tempfile.mkdtemp() - try: - input_path = os.path.join(temporary_directory, "image" + wmf_extension) - with io.open(input_path, "wb") as input_fileobj: - with image.open() as image_fileobj: - shutil.copyfileobj(image_fileobj, input_fileobj) - - output_path = os.path.join(temporary_directory, "image.png") - subprocess.check_call([ - "libreoffice", - "--headless", - "--convert-to", - "png", - input_path, - "--outdir", - temporary_directory, - ]) - - with io.open(output_path, "rb") as output_fileobj: - output = output_fileobj.read() - - def open_image(): - return io.BytesIO(output) - - return post_process(image.copy( - content_type="image/png", - open=open_image, - )) - finally: - shutil.rmtree(temporary_directory) - - return convert_image - - -def imagemagick_trim(image): - command = ["convert", "-", "-trim", "-"] - process = subprocess.Popen(command, stdin=subprocess.PIPE, stdout=subprocess.PIPE) - try: - with image.open() as image_fileobj: - shutil.copyfileobj(image_fileobj, process.stdin) - output, err_output = process.communicate() - except: - process.kill() - process.wait() - raise - - return_code = process.poll() - if return_code: - raise subprocess.CalledProcessError(return_code, command) - else: - def open_image(): - return io.BytesIO(output) - - return image.copy(open=open_image) -- cgit v1.2.3