原图
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)