【PYTHON】 Pilow 将半透明图片绘制到图片中

1 篇文章 0 订阅
0 篇文章 0 订阅

 python 的pilow在将半透明图片复合到正常图片时,需要用到alpha_composite函数

两张图片都必须保留 alpha 通道,即 mode 为 RGBA,alpha 通道是保存图片透明度的通道,如果传入图片为png, 其本身会带有alpha 通道, 如果是jpg, 其本身不带有alpha通道,需要为图片添加 alpha 通道。

Image.alpha_composite(im1,im2)

将im2复合到im1上,返回一个Image对象

参数:im1--第一个图像

        im2--第二个图像 im1和im2的size要相同。且im1和im2的mode都必须是RGBA

def get_mongolia(im1, im2, width=0, height=0):
    # 蒙层与图片的融合, 将im2贴到im1上
    im1_size = im1.size
    im2_size = im2.size
    crop_size = (min(im1_size[0]-width, im2_size[0]), min(im1_size[1]-height, im2_size[1]))
    im1_crop = im1.crop((width, height, crop_size[0] + width, crop_size[1] + height))
    im2_crop = im2.crop((0, 0, crop_size[0], crop_size[1]))
    mongolia = Image.alpha_composite(im1_crop, im2_crop)
    im2_crop.show()
    im1.paste(mongolia, (width, height), mongolia)
    return im1

上述代码封装为im1添加有蒙层的im2, im2是半透明的图片,先计算出im1 和im2合并的区域大小即crop_size, 然后对im1与im2进行裁剪,利用alpha_composite方法将裁剪后的图片复合起来。再将图片贴到im1中。

width 是融合后im2相对于im1的起始x轴, height 是y轴。

eg:

【素材】

im1

im2 

融合后图片 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值