Create image_processing.py
Added central function to rescale and compress images for recipes (or in general). Switched from previously used PNG format to 75% JPEG format for a 5-10x file size reduction with hardly any quality loss.
This commit is contained in:
15
cookbook/helper/image_processing.py
Normal file
15
cookbook/helper/image_processing.py
Normal file
@ -0,0 +1,15 @@
|
||||
from PIL import Image
|
||||
from io import BytesIO
|
||||
|
||||
|
||||
def rescale_image(image_object, base_width=720):
|
||||
img = Image.open(image_object)
|
||||
icc_profile = img.info.get('icc_profile') # remember color profile to not mess up colors
|
||||
width_percent = (base_width / float(img.size[0]))
|
||||
height = int((float(img.size[1]) * float(width_percent)))
|
||||
|
||||
img = img.resize((base_width, height), Image.ANTIALIAS)
|
||||
img_bytes = BytesIO()
|
||||
img.save(img_bytes, 'JPEG', quality=75, optimize=True, icc_profile=icc_profile)
|
||||
|
||||
return img_bytes
|
Reference in New Issue
Block a user