def extract_raster_image(wmf_data): try: wmf, wmf_err = plugins['wmf'] except KeyError: raise Unavailable('libwmf not available on this platform') if wmf_err: raise Unavailable(wmf_err) if iswindows: import sys, os appdir = sys.app_dir if isinstance(appdir, unicode): appdir = appdir.encode(filesystem_encoding) fdir = os.path.join(appdir, 'wmffonts') wmf.set_font_dir(fdir) data = '' with TemporaryDirectory('wmf2png') as tdir: with CurrentDir(tdir): wmf.render(wmf_data) images = list(sorted(glob.glob('*.png'))) if not images: raise NoRaster('No raster images in WMF') data = open(images[0], 'rb').read() im = Image() im.load(data) pw = PixelWand() pw.color = '#ffffff' im.rotate(pw, 180) return im.export('png')