python-pillow 库 PIL.Image.transform 方法详情
最编程
2024-04-28 08:41:30
...
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")
下面展示一下原图:
下面说下这个函数的参数: 参数:
-
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效果图:
更加详细的内容可以参加原文。