diff --git a/requirements.txt b/requirements.txt index f6ea081a..670e9ace 100644 --- a/requirements.txt +++ b/requirements.txt @@ -33,3 +33,4 @@ pyjwkest==1.3.2 python-dateutil==2.6.0 netaddr==0.7.18 serpy==0.1.1 +psd-tools==1.4 diff --git a/taiga/base/utils/thumbnails.py b/taiga/base/utils/thumbnails.py index db972d40..e28aff0c 100644 --- a/taiga/base/utils/thumbnails.py +++ b/taiga/base/utils/thumbnails.py @@ -18,12 +18,22 @@ import os +from psd_tools import PSDImage from django.db.models.fields.files import FieldFile from taiga.base.utils.urls import get_absolute_url from easy_thumbnails.files import get_thumbnailer from easy_thumbnails.exceptions import InvalidImageFormatError +from PIL import Image + + +def psd_image_factory(data, *args): + return PSDImage.from_stream(data).as_PIL() + + +Image.init() +Image.register_open("PSD", psd_image_factory) def get_thumbnail_url(file_obj, thumbnailer_size): @@ -35,8 +45,6 @@ def get_thumbnail_url(file_obj, thumbnailer_size): source_extension = os.path.splitext(relative_name)[1][1:] if source_extension == "tiff": return None - if source_extension == "psd": - return None try: path_url = get_thumbnailer(file_obj)[thumbnailer_size].url