python-pillow库PIL.Image.transform()方法详解

2017-01-11 15:23:22来源:oschina作者:clgo人点击

第七城市


pillow中所有的图片处理方法都是基于Image.transform()函数的,rotate等函数是一些常规的封装罢了,学会使用它才是正统。
```
Image.transform(size, method, data=None, resample=0, fill=1)
```
改变一张图片,这个方法会根据给定的尺寸生成一张与原图同样mode的图片,并根据给定的变化,从原图生的一个副本。说白了呢就是生成一张变换后的新图片。
这样介绍,这个函数是不是感觉很简单,分分钟都能实现,我也是这样觉得的,其实。
在介绍参数之前,我们默认已经打开了该图片:
```
from PIL import Image
img = Image.open("img/lyc.jpg")
```
下面展示一下原图:
![lyc.jpg](/2014th7cj/d/file/p/20170111/hvvqgahrwy3.jpg "在这里输入图片标题")
下面说下这个函数的参数:
参数:- size:尺寸,接受一个二值元组,格式:(width, height)。这个参数可以用来做缩放处理,比如原图(300, 300)大小,你可以指定新图片大小为(50, 50)
- data:这个参数是必须的,否则会报:ValueError异常。这个参数用于指定methond指定的变换方式说需要的额外的数据,这个会在下面说method参数时顺带说了。
- method:变换的方式,该值是给定,你只能从以下几个值当中选一个:
- Image.EXTENT(cut out a rectangular subregion[ 切出一个矩形区域 ]):
- 该参数的data接受一个四值list,格式如:( x1, y1, x2, y2),表示矩阵的起始点(x1, y1),(x2, y2)。这个点坐标不要求一定要在图形大小表示的范围内,超过也可以,不过超过的部分默认使用黑色填充。```
# 矩形剪切
img.transform((100,100),Image.EXTENT ,[100,100,400,400]).show()
```
lyc_trans.jpg效果图:
![把原图从(100, 100) 到 (400, 400)的矩阵缩小放到 100*100大小的画布上。](/2014th7cj/d/file/p/20170111/yvxpdrjzf3w.jpg "在这里输入图片标题")
更加详细的内容可以参加原文。
第七城市

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台