From d35135a3f5bb38ac22e53aebc6d0a7916d8063e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Espino?= Date: Thu, 20 Jul 2017 13:41:11 +0200 Subject: [PATCH] Fix problem with fetch urls from cairoSVG --- taiga/base/utils/thumbnails.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/taiga/base/utils/thumbnails.py b/taiga/base/utils/thumbnails.py index f5d23628..18b4bdd9 100644 --- a/taiga/base/utils/thumbnails.py +++ b/taiga/base/utils/thumbnails.py @@ -33,15 +33,22 @@ from io import BytesIO # SVG thumbnail generator try: from cairosvg.surface import PNGSurface + from cairosvg.url import fetch import magic + def url_fetcher(url, resource_type): + if url.startswith("data:"): + return fetch(url, resource_type) + return b"" + + def svg_image_factory(fp, filename): mime_type = magic.from_buffer(fp.read(1024), mime=True) if mime_type != "image/svg+xml": raise TypeError fp.seek(0) - png_data = PNGSurface.convert(fp.read()) + png_data = PNGSurface.convert(fp.read(), url_fetcher=url_fetcher) return PngImageFile(BytesIO(png_data)) Image.register_mime("SVG", "image/svg+xml")