Python图像处理库PIL的Image模块介绍(四)

(Image模块方法16-25)

16、  Paste

定义1im.paste(image,box)

含义1:将一张图粘贴到另一张图像上。变量box或者是一个给定左上角的2元组,或者是定义了左,上,右和下像素坐标的4元组,或者为空(与(00)一样)。如果给定4元组,被粘贴的图像的尺寸必须与区域尺寸一样。

如果模式不匹配,被粘贴的图像将被转换为当前图像的模式。

例子1

>>>from PIL import Image

>>> im01= Image.open("D:\\Code\\Python\\test\\img\\test01.jpg")

>>>box=[0,0,100,100]

>>>im_crop = im01.crop(box)

>>>im_crop.size

(100, 100)

>>>im_crop.mode

'RGB'

>>>im01.paste(im_crop, (200,200))

>>>im01.paste(im_crop, (500,500,600,600))

>>>im01.show()

我们先从图像im01中裁剪出一个100x100的图像,它的模式与im01一样都是“RGB”。然后通过2元组和4元组的方式,将裁剪出来的图像粘贴到图像im01上。在图像im01的(200200)和(500500)两个位置分别出现了裁剪出来的100x100的图像。其结果如下图所示:

                             

定义2im.paste(colour,box)

含义2:它与定义1一样,但是它使用同一种颜色填充变量box对应的区域。对于单通道图像,变量colour为单个颜色值;对于多通道,则为一个元组。

例子2

>>>from PIL import Image

>>> im01= Image.open("D:\\Code\\Python\\test\\img\\test01.jpg")

 

>>> im01.paste((0,256,0),(0,0,100,100))

图像im01的(00)位置将出现一个100x100的绿色方块。

 

>>> im01.paste(255,(0,0,100,100))

图像im01的(00)位置将出现一个100x100的红色方块。对于多通道的图像,如果变量colour只给定一个数值,将只会应用于图像的第一个通道。如果是“RGB”模式的图像,将应用于红色通道。

定义3im.paste(image,box, mask)

含义3:与定义1一样,但是它使用变量mask对应的模板图像来填充所对应的区域。可以使用模式为“1”、“L”或者“RGBA”的图像作为模板图像。模板图像的尺寸必须与变量image对应的图像尺寸一致。如果变量mask对应图像的值为255,则模板图像的值直接被拷贝过来;如果变量mask对应图像的值为0,则保持当前图像的原始值。变量mask对应图像的其他值,将对两张图像的值进行透明融合。

注意:如果变量image对应的为“RGBA”图像,即粘贴的图像模式为“RGBA”,则alpha通道被忽略。用户可以使用同样的图像作为原图像和模板图像。

例子3

>>>from PIL import Image

>>> im01 =Image.open("D:\\Code\\Python\\test\\img\\test01.jpg")

>>> box =[500,500,600,600]

>>> im_crop =im01.crop(box)

>>> r,g,b =im_crop.split()

>>>im01.paste(im_crop, (0,0,100,100), r)

>>> im01.show()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值