目录

image.paste函数

举例说明:


image.paste函数

python中PIL库中的paste函数的作用为将一张图片覆盖到另一张图片的指定位置去。函数的声明如下:

def paste(self, im, box=None, mask=None):

该函数是图像的一个方法,调用方式为image.paste(...)

定义中im是要黏贴到image上面去的图片,box是要黏贴到的区域。

举例说明:

1、黏贴是在正常范围内完成的

from PIL import Image

a = Image.new('RGB', (300, 300), (255, 0, 0))  # 生成一张300*300的红色图片
b = Image.new('RGB', (200, 200), (0, 255, 0))  # 200*200的绿色图片
a.paste(b, (50,50)) # 将b贴到a的坐标为(50,50)的位置,以图片左上角为坐标原点,这里说的是原点的移动
a.show()  # 显示a

运行结果如下(注意图像的坐标原点在左上角,操作均以图片的左上角为参考点):

 2、黏贴的范围超出目标图像的范围

from PIL import Image

a = Image.new('RGB', (300, 300), (255, 0, 0))  # 生成一张300*300的红色图片
b = Image.new('RGB', (100, 400), (0, 255, 0))  # 100*400的绿色图片
a.paste(b, (100,150)) # 将b贴到a的坐标为(100,150)的位置
a.show()  # 显示a

运行结果如下:

由结果可知超出的部分会被自动舍弃。这里只保留了图b中100*150大小的区域。

再看另一个超出范围的例子:

from PIL import Image

a = Image.new('RGB', (300, 300), (255, 0, 0))  # 生成一张300*300的红色图片
b = Image.new('RGB', (150, 150), (0, 255, 0))  # 150*150的绿色图片
a.paste(b, (-50,-50)) # 将b贴到a的坐标为(-50,-50)的位置
a.show()  # 显示a

运行结果如下:

 同样的,即使是从负坐标开始粘,超出正常区域的部分也会被自动忽略。这里图b就只剩下一块100*100的区域被粘到a上了。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐