diff --git a/sorl/thumbnail/engines/pil_engine.py b/sorl/thumbnail/engines/pil_engine.py index e0921988c..b4a9a7ca7 100644 --- a/sorl/thumbnail/engines/pil_engine.py +++ b/sorl/thumbnail/engines/pil_engine.py @@ -267,7 +267,7 @@ def _get_raw_data(self, image, format_, quality, image_info=None, progressive=Fa } # keeps icc_profile - if 'icc_profile' in image_info: + if image_info and 'icc_profile' in image_info: params['icc_profile'] = image_info['icc_profile'] raw_data = None @@ -278,11 +278,13 @@ def _get_raw_data(self, image, format_, quality, image_info=None, progressive=Fa # Do not save unnecessary exif data for smaller thumbnail size params.pop('exif', {}) image.save(bf, **params) + raw_data = bf.getvalue() except OSError: - # Try without optimization. + # Try without optimization and icc_profile. params.pop('optimize') + if 'icc_profile' in params: + params.pop('icc_profile') image.save(bf, **params) - else: raw_data = bf.getvalue() finally: bf.close()