Hello all. I use this function for resizing images for full size and thumbnails:
def SMARTHUMB(image, box, fit=True, name="thumb"): #Downsample the image. #@param img: Image - an Image-object #@param box: tuple(x, y) - the bounding box of the result image #@param fit: boolean - crop the image to fill the box if image: request = current.request img = Image.open(request.folder + 'uploads/' + image) #preresize image with factor 2, 4, 8 and fast algorithm factor = 1 while img.size[0] / factor > 2 * box[0] and img.size[1] * 2 / factor > 2 * box[1]: factor *= 2 if factor > 1: img.thumbnail((img.size[0] / factor, img.size[1] / factor), Image.NEAREST) #calculate the cropping box and get the cropped part if fit: x1 = y1 = 0 x2, y2 = img.size wRatio = 1.0 * x2 / box[0] hRatio = 1.0 * y2 / box[1] if hRatio > wRatio: y1 = int(y2 / 2 - box[1] * wRatio / 2) y2 = int(y2 / 2 + box[1] * wRatio / 2) else: x1 = int(x2 / 2 - box[0] * hRatio / 2) x2 = int(x2 / 2 + box[0] * hRatio / 2) img = img.crop((x1, y1, x2, y2)) #Resize the image with best quality algorithm ANTI-ALIAS img.thumbnail(box, Image.ANTIALIAS) root, ext = os.path.splitext(image) thumb = '%s_%s%s' % (root, name, ext) img.save(request.folder + 'uploads/' + thumb) return thumb In the db: db.define_table('news', Field('title', type='string'), Field('image', 'upload'), Field('image_thumb', 'upload'), Field('image_big', 'upload')) box_thumb = (270, 158) db.news.image_thumb.compute = lambda row: SMARTHUMB(row.image, box_thumb) box_big = (770, 435) db.news.image_big.compute = lambda row: SMARTHUMB(row.image, box_big) The problem is that image_thumb have the same size as image_big. Someone know why? Thanks, regards. -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.