Made the image sampling filter configurable

- Changed the default to BICUBIC instead of previous ANTIALIAS
This commit is contained in:
Joar Wandborg 2013-01-22 17:55:55 +01:00
parent 0c871f8122
commit 7cd7db5af4
2 changed files with 23 additions and 1 deletions

View File

@ -86,6 +86,10 @@ max_height = integer(default=640)
max_width = integer(default=180) max_width = integer(default=180)
max_height = integer(default=180) max_height = integer(default=180)
[media_type:mediagoblin.media_types.image]
# One of BICUBIC, BILINEAR
resize_filter = string(default="BICUBIC")
[media_type:mediagoblin.media_types.video] [media_type:mediagoblin.media_types.video]
# Should we keep the original file? # Should we keep the original file?
keep_original = boolean(default=False) keep_original = boolean(default=False)

View File

@ -47,7 +47,25 @@ def resize_image(entry, filename, new_path, exif_tags, workdir, new_size,
except IOError: except IOError:
raise BadMediaFail() raise BadMediaFail()
resized = exif_fix_image_orientation(resized, exif_tags) # Fix orientation resized = exif_fix_image_orientation(resized, exif_tags) # Fix orientation
resized.thumbnail(new_size, Image.ANTIALIAS)
pil_filters = {
'NEAREST': Image.NEAREST,
'BILINEAR': Image.BILINEAR,
'BICUBIC': Image.BICUBIC,
'ANTIALIAS': Image.ANTIALIAS}
filter_config = \
mgg.global_config['media_type:mediagoblin.media_types.image']\
['resize_filter']
try:
resize_filter = pil_filters[filter_config.upper()]
except KeyError:
raise Exception('Filter "{0}" not found, choose one of {1}'.format(
unicode(filter_config),
u', '.join(pil_filters.keys())))
resized.thumbnail(new_size, resize_filter)
# Copy the new file to the conversion subdir, then remotely. # Copy the new file to the conversion subdir, then remotely.
tmp_resized_filename = os.path.join(workdir, new_path[-1]) tmp_resized_filename = os.path.join(workdir, new_path[-1])