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 1/2] 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") From 0930228c27ca3a7d5fd38c74be4704267eb50c95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Espino?= Date: Fri, 21 Jul 2017 09:45:57 +0200 Subject: [PATCH 2/2] Fixed SVG thumbnail generation --- taiga/base/utils/thumbnails.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/taiga/base/utils/thumbnails.py b/taiga/base/utils/thumbnails.py index 18b4bdd9..e6d6a4b0 100644 --- a/taiga/base/utils/thumbnails.py +++ b/taiga/base/utils/thumbnails.py @@ -57,11 +57,14 @@ try: except Exception: pass +Image.init() # PSD thumbnail generator def psd_image_factory(data, *args): - return PSDImage.from_stream(data).as_PIL() + try: + return PSDImage.from_stream(data).as_PIL() + except Exception: + raise TypeError -Image.init() Image.register_open("PSD", psd_image_factory)