2006年10月09日 星期一 19:28
×Ô¼ºÐ´µÄ£¬ºÃÏñÒ²ÓÐÐÖµÜÐèÒª£¬´úÂëºÜ³ó¡£²îµÄºÜ£¬´ó¼ÒÅúÆÀ¡£
ÒÔÏ´úÂëµ¥¶ÀΪһ¸öÎļþ£¬ÓëdjangoÅäºÏ£¬Éú³ÉËõÂÔͼ¡£
#coding=utf-8
import Image
import os
import StringIO
from APPSname.settings import DEFAULT_IMAGE
def cropimage(image,width,height):
x = width - height
if x>0:
t = x/2
image = image.crop((t,0,height+t,height))
if x<0:
t = abs(x)/2
image = image.crop((0,t,width,width+t))
return image
def pastetuple(width,height,arg):
w , h = 0 , 0
if width < arg:
w = (arg - width)/2
if height < arg:
h = (arg - height)/2
tu = (w,h)
return tu
def thumbnail(content,arg):
size = (arg,arg)
im = StringIO.StringIO(content)
image = Image.open(im)
image = image.convert('RGB')
width,height = image.size
if width > arg or height > arg:
image = cropimage(image,width,height)
image.thumbnail(size,Image.ANTIALIAS)
width,height = image.size
if width < arg or height < arg:
tu = pastetuple(width,height,arg)
bg = Image.open(DEFAULT_IMAGE)
bg.paste(image,tu)
image = bg
buf = StringIO.StringIO()
image.save(buf, "JPEG")
return buf.getvalue()
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20061009/67430629/attachment.html
2006年10月09日 星期一 19:59
谢谢风兄的分享,稍加改造了一下,分享如下:
from PIL import Image
import os.path
def cropimage(image,width,height):
x = width - height
if x>0:
t = x/2
image = image.crop((t,0,height+t,height))
if x<0:
t = abs(x)/2
image = image.crop((0,t,width,width+t))
return image
def thumbnail(filename, size=(48,48), thumbnail_filename=None):
image = Image.open(filename)
image = image.convert('RGB')
width,height = image.size
if width > size[0] or height >size[1]:
image = cropimage(image,width,height)
image.thumbnail(size, Image.ANTIALIAS)
if not thumbnail_filename:
thumbnail_filename = get_default_thumbnail_filename(filename)
#image.resize((size),
Image.ANTIALIAS).save(file(thumbnail_filename, 'wb'), "JPEG")
image.save(file(thumbnail_filename, 'wb'), "JPEG")
return thumbnail_filename
def get_default_thumbnail_filename(filename):
path, ext = os.path.splitext(filename)
return path + ext
Zeuux © 2025
京ICP备05028076号