summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chimere/models.py39
1 files changed, 22 insertions, 17 deletions
diff --git a/chimere/models.py b/chimere/models.py
index 827c56e..4f6d4e0 100644
--- a/chimere/models.py
+++ b/chimere/models.py
@@ -578,26 +578,31 @@ def picturefile_post_save(sender, **kwargs):
miniature = basename + '_thumb' + format
filename = file.path
miniature_filename = os.path.join(filehead, miniature)
-
- image = Image.open(filename)
- image_x, image_y = image.size
- if settings.CHIMERE_THUMBS_SCALE_HEIGHT:
- image_y, image_x = scale_image(settings.CHIMERE_THUMBS_SCALE_HEIGHT,
- (image_y, image_x))
- elif settings.CHIMERE_THUMBS_SCALE_WIDTH:
- image_x, image_y = scale_image(settings.CHIMERE_THUMBS_SCALE_WIDTH,
- (image_x, image_y))
- image.thumbnail([image_x, image_y], Image.ANTIALIAS)
-
- temp_image = open(miniature_filename, 'w')
try:
- image.save(temp_image, image.format, quality=90, optimize=1)
+ image = Image.open(filename)
except:
- image.save(temp_image, image.format, quality=90)
+ image = None
+ if image:
+ image_x, image_y = image.size
+ if settings.CHIMERE_THUMBS_SCALE_HEIGHT:
+ image_y, image_x = scale_image(
+ settings.CHIMERE_THUMBS_SCALE_HEIGHT,
+ (image_y, image_x))
+ elif settings.CHIMERE_THUMBS_SCALE_WIDTH:
+ image_x, image_y = scale_image(
+ settings.CHIMERE_THUMBS_SCALE_WIDTH,
+ (image_x, image_y))
+ image.thumbnail([image_x, image_y], Image.ANTIALIAS)
+
+ temp_image = open(miniature_filename, 'w')
+ try:
+ image.save(temp_image, image.format, quality=90, optimize=1)
+ except:
+ image.save(temp_image, image.format, quality=90)
- short_name = miniature_filename[len(settings.MEDIA_ROOT):]
- picturefile.thumbnailfile = short_name
- picturefile.save()
+ short_name = miniature_filename[len(settings.MEDIA_ROOT):]
+ picturefile.thumbnailfile = short_name
+ picturefile.save()
if not kwargs['instance'] or not kwargs['created']:
return