pillow中的transform/composite

原图

 transform

图片的变换,截取的同时进行缩放和填充等

参数

size

返回图片的尺寸长度为2的元组

method

转换方法

Image.EXTENT(一个矩形区)

 Image.AFFINE(仿射变换)

 Image.PERSPECTIVE(透视变换)

Image.QUAD(一个四边形映射到一个矩形)

 Image.MESH(图源的四边形在一个操作)

data

转换方法需要的额外数据

(对应上一参数的五种模式)

data格式为(x0, y0, x1, y1),传入截取矩形区域的坐标,可以超出原图的边界。

data格式为(a, b, c, d, e, f),将原图中(ax+by+c, dx+ey+f)坐标的点映射到返回图片的(x, y)坐标。

不太常见,且与2的用法相似

data格式为(x0, y0, x1, y1, x2, y2, x3, y3),传入一个四边形的四个坐标(西北,西南,东南,东北),将这个四边形映射到返回的矩形图片中

需先自己修改后才可使用,因为源代码有错误

resample

重采样,是一个可选的重采样过滤器。可以传入Image.NEAREST, Image.BILINEAR, Image.BICUBIC。默认为Image.NEAREST。如果图像的模式为'1'或'P',则始终设置为Image.NEAREST。

fill

填充仅且仅当method参数是一个Image.ImageTransformHandler对象时有效

fillcolor

填充颜色。超出原图区域的部分使用此颜色填充

from PIL import Image
im=Image.open("image/fj.jpg")
im=im.transform((100,100),method=Image.QUAD,data=(0,0,4,5,45,67,200,400),fillcolor='red')
im.show()

 

from PIL import Image
im=Image.open("image/fj.jpg")
im=im.transform((300,300),method=Image.EXTENT,data=(0,0,400,400))
im.show()

 

composite

图片的复合

参数

image1

 复合的第一张图片

image2

复合的第二张图片

mask

蒙版。也是一张图片,这张图片的模式为'1', 'L'或'RGBA',尺寸必须与前两张图片相同。

from PIL import Image
im=Image.open("image/fj.jpg")
im1=Image.open("image/xx.jpg")
im=im.resize((300,300))
im1=im1.resize((400,400))
im2=Image.composite(im,im1,mask=None)
im2.show()

 

from PIL import Image
im=Image.open("image/fj.jpg")
im1=Image.open("image/xx.jpg")
im2=Image.open("image/qq.jpg")
im2=im2.convert('L')
im=im.resize((300,300))
im1=im1.resize((300,300))
im2=im2.resize((300,300))
im2=Image.composite(im,im1,im2)
im2.show()

 

 其效果与blend()有相像之处,且相当于

image2.paste(image1, None, mask)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值