From dd7ae5a8e44fa581eba5c6047030c8cd32c536b9 Mon Sep 17 00:00:00 2001 From: Matthew Tretter Date: Fri, 4 Nov 2011 22:43:41 -0400 Subject: [PATCH] Increase MAXBLOCK on save failure Under certain circumstances, saving a JPEG may fail if MAXBLOCK isn't large enough, so we (temporarily) increase it. This should fix #50. --- imagekit/utils.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/imagekit/utils.py b/imagekit/utils.py index f758e88..0323627 100644 --- a/imagekit/utils.py +++ b/imagekit/utils.py @@ -4,7 +4,7 @@ import types from django.utils.functional import wraps -from imagekit.lib import Image +from imagekit.lib import Image, ImageFile def img_to_fobj(img, format, **kwargs): @@ -17,7 +17,13 @@ def img_to_fobj(img, format, **kwargs): else: img = img.convert('RGB') - img.save(tmp, format, **kwargs) + try: + img.save(tmp, format, **kwargs) + except IOError: + old_maxblock = ImageFile.MAXBLOCK + ImageFile.MAXBLOCK = img.size[0] * img.size[1] + img.save(tmp, format, **kwargs) + ImageFile.MAXBLOCK = old_maxblock tmp.seek(0) return tmp