使用PIL Image裁切图片,制作缩略图代码,,PIL是python的图


PIL是python的图片库,是Python Imaging Library的缩写。

安装PIL

1、下载PIL的Source Kit(因为这个包支持全部平台) Imaging--1.1.6.tar.gz URL: http://www.pythonware.com/products/pil/index.htm

2、解压缩包 tar -zxvf Imaging-1.1.6.tar.gz

3、进入到解压后的目录 cd Imaging-1.1.6

4、Build pakage: python setup.py build_ext -i

5、测试; python selftest.py

6、安装 python setup.py install

执行完上述操作后,可以直接在程序用使用 import Image进行使用PIL中的Image类

使用PIL裁切图片

使用PIL需要引用Image,使用Image的open(file)方法可以返回打开的图片,使用crop((x0,y0,x1,y1))方法可以对图片做裁切。

如下代码示例:

import Imageimg = Image.open(r'E:\photo\20120402\abc.jpg')region = (100,200,400,500)#裁切图片cropImg = img.crop(region)#保存裁切后的图片cropImg.save(r'E:\photo\crop.jpg')

使用PIL制作缩略图

PIL的Image中提供了thumbnail(img,filter)方法,使用这个方法可以很方便的制作缩略图。

如下是OutOfMemory.CN制作头像缩略图时用到的方法

img = Image.open(i.avatar.file)if img.size[0] > 1024 or img.size[1] > 1000:    newWidth = 1024    newHeight = float(1024) / img.size[0] * img.size[1]    img.thumbnail((newWidth,newHeight),Image.ANTIALIAS)saveToPath = path.join(getUserUploadDirRoot(loginUser.id) , 'original.jpg')img.save(saveToPath,"JPEG")

这一步是在为裁切头像做准备,如果用户上传的图片宽度大于1024时会做一下缩放。

PIL提供的方法非常简单易用,更多PIL的方法可以参考其文档。

评论关闭