diff options
| -rw-r--r-- | chimere/models.py | 39 |
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 |
