|
# -*- coding: utf-8 -*-
from __future__ import division
try:
from cStringIO import StringIO
from cStringIO import StringIO as BytesIO
except ImportError:
try:
from StringIO import StringIO
from StringIO import StringIO as BytesIO
except ImportError:
from io import BytesIO, StringIO
try:
from PIL import Image
except ImportError:
import Image
def make_thumbnail(im_path, im_thumbnail_path=None, max_width=360):
im = Image.open(im_path)
width, height = im.size
thumb_width = min(max_width, width)
thumb_height = height / width * thumb_width
im.thumbnail((thumb_width, thumb_height), Image.ANTIALIAS)
im.save(im_thumbnail_path or im_path, im.format or 'JPEG', quality=90)
return width, height, thumb_width, thumb_height
def make_thumbnail2(data, w=360, h=240):
im = Image.open(BytesIO(data))
fmt = im.format.lower()
width, height = im.size
if width > height:
thumb_width, thumb_height = w, height * w / width
else:
thumb_width, thumb_height = width * h / height, h
im.thumbnail((thumb_width, thumb_height), Image.ANTIALIAS)
out = BytesIO()
im.save(out, format=fmt)
data = out.getvalue()
return data
|