aboutsummaryrefslogtreecommitdiff
path: root/mammoth/images.py
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2017-09-06 20:10:18 +0100
committerMichael Williamson <mike@zwobble.org>2017-09-06 20:10:18 +0100
commit2da325b72414ef43b3db9713b1c46d97685171bb (patch)
treef6553c327d0155e9e82d789a76de0ce1554f3baa /mammoth/images.py
parent500a2aca545c47b9677bd85e55b9b24dc4ec9c7c (diff)
Move WMF image handler to recipes directory
Diffstat (limited to 'mammoth/images.py')
-rw-r--r--mammoth/images.py76
1 files changed, 0 insertions, 76 deletions
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)