2011-01-26 回答
# -*- coding: gbk -*-
import image
import imagedraw
import imagechops
im = image.new('rgb', (800, 600), 'white')
im2 = image.open('test.png')
#测试图放画布左边,画布右边底色涂黄
left = (im.size[0]/2 - im2.size[0])/2
upper = (im.size[1] - im2.size[1])/2
im.paste(im2, (left, upper))
im.paste('yellow', (im.size[0]/2, 0) + im.size)
im.show()
#因要旋转得计算测试图对角线,然后切出
d = int((im2.size[0]**2 +im2.size[1]**2)**0.5)
left = (im.size[0]/2-d)/2
upper = (im.size[1]-d)/2
bbox = (left, upper, left+d, upper+d)
cp = im.crop(bbox)
#图底不是黑先做mask再作旋转,
#mask做法不一,按测试图可选取g或b通道
r, g, b = cp.split()
mask = g.point(lambda i: i