I have some strange problem with PIL not resizing the image.
def handle_uploaded_image(i, u):
# resize image
from PIL import Image
img = Image.open(i)
if img.mode not in ('L', 'RGB'):
img = img.convert('RGB')
width, height = img.size
if width == height:
img.thumbnail(settings.THUMB_SIZE, Image.ANTIALIAS)
elif width > height:
ratio = floor(width / height)
newwidth = ratio * 150
newwidthhalf = floor(newwidth / 2)
img.resize((newwidth, 150), Image.ANTIALIAS)
box = 1
img.crop((newwidthhalf, 0, 150, 150))
elif height > width:
ratio = floor(height / width)
newheight = ratio * 150
newheighthalf = floor(newheight / 2)
img.resize((150, newheight), image.ANTIALIAS)
box = 1
img.crop((0, newheighthalf, 150, 150))
path = '/'.join([settings.MEDIA_ROOT, 'users', u.username, 'mugshotv2.jpg'])
img.save(path, format='JPEG')
This code runs without any errors and produces me image named mugshotv2.jpg in correct folder, but it does not resize it. It does something to it, because the size of the picture drops from 120 kb to 20 kb, but the dimensions remain the same.
Perhaps you can also suggest way to crop images into squares with less code. I kinda thought that Image.thumbnail does it, but what it did was that it scaled my image to 150 px by its width, leaving height 100px.
Alan.