utils.py 637 Bytes
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# Image utils

from io import BytesIO
from PIL import Image

def scale_dimension(width, height, long_edge):
    if width > height:
        ratio = long_edge * 1. / width
    else:
        ratio = long_edge * 1. / height
    return int(width * ratio), int(height * ratio)

def resize_image(im, edge, format): # TODO move that into a utils file
    from django.core.files.base import ContentFile
    (w, h) = im.size
    (width, height) = scale_dimension(w, h, long_edge=edge)
    content = BytesIO()
    im.resize((width, height), Image.ANTIALIAS).save(fp=content, format=format, dpi=[72, 72])
    return ContentFile(content.getvalue())