Here's what I do. Seems to work. Field('image', 'upload', uploadfolder=request.folder+'static/uploads', requires=IS_EMPTY_OR(IS_IMAGE())), Field('image_display', 'upload', uploadfolder=request.folder+'static/uploads', compute=lambda r: resize_image(r['image'], (320,320), 'display'), readable=False, writable=False), Field('image_thumb', 'upload', uploadfolder=request.folder+'static/uploads', compute=lambda r: resize_image(r['image'], (150,130), 'thumb'), readable=False, writable=False),
def resize_image(image, size, path, rotate=0): import os.path from PIL import Image' if image: try: img = Image.open('%sstatic/uploads/%s' % (request.folder, image)) img = img.convert("RGB") img.thumbnail(size, Image.ANTIALIAS) img = img.rotate(rotate) root, ext = os.path.splitext(image) filename = '%s_%s%s' %(root, path, ext) img.save('%sstatic/uploads/%s' % (request.folder, filename)) return filename except Exception, e: return e else: return None