一开始尝试了网上各种方法,效果都不太好,边缘比较毛躁。目前试出来比较好的方法alpha_composite和paste

无透明度

#reference:https://blog.csdn.net/weixin_43624538/article/details/104768037
import PIL.Image as Imagelayer1 = Image.open("image.jpg").convert('RGBA')   # 底图背景
layer2 = Image.open("mask.png").convert('RGBA')    # mask# layer1和layer2要相同大小,否则需resize
final = Image.new("RGBA", layer1.size)             # 合成的image
final = Image.alpha_composite(final, layer1)
final = Image.alpha_composite(final, layer2)final=final.convert('RGB')
final.save('image_mask.jpg')

亲测效果:
alpha_composite效果最好,边缘平滑,paste也可,blend周围会有毛躁和失真

添加透明度:

尝试了blend和网上其他方法,透明图片叠加透明度后颜色会变,并且边缘毛躁,后来发现调整alpha通道亮度就不会失真

#透明度叠加:
#reference:https://www.qedev.com/python/37695.html
import PIL.Image as Image,ImageEnhancelayer1 = Image.open("image.jpg").convert('RGBA')   # 底图背景
layer2 = Image.open("mask.png").convert('RGBA')    # maskr,g,b,a = layer2.split()
# opacity为透明度,范围(0,1)
opacity = 0.4
alpha = ImageEnhance.Brightness(a).enhance(opacity)
layer2.putalpha(alpha)# 使用alpha_composite叠加,两者需相同size
final = Image.new("RGBA", layer1.size)
final = Image.alpha_composite(final, img)
final = Image.alpha_composite(final, layer2)# 使用paste叠加,无需相同大小,可调整box位置
layer = Image.new('RGBA', layer1 .size, (0, 0, 0, 0))
layer.paste(layer2, (100, 100))
Image.composite(layer, layer1 , layer).convert('RGB')

不好用的方法

# 方法1:
# factor添加透明度,颜色失真,边缘处理毛躁
img = Image.blend(layer1, layer2, factor)# 方法2:
# 设置水印图片透明度,颜色失真
rand = random.randint(100,255)
layer2= np.array(layer2)[:-1] + (rand, )
layer2= Image.fromarray(np.uint8(layer2))
# 再使用alpha_composite叠加图片
final = Image.new("RGBA", layer1.size)
final = Image.alpha_composite(final, layer1)
final = Image.alpha_composite(final, layer2)

[pillow]透明图片和不透明图片叠加合成--添加透明度相关推荐

  1. .net的label的背景如何设置成为透明_css如何设置背景图片?background属性添加背景图片...

    在前端开发过程中,为了页面的美观,往往都会给html页面添加背景图片.那么如何利用css设置html中用图片做背景?本章就给大家介绍css怎样设置背景图片.有一定的参考价值,有需要的朋友可以参考一下, ...

  2. php 网页 透明背景图片,php 处理透明背景的图片时的问题

    PHP图象处理之透明背景的gif和png图片的一些问题 1,直接读取有透明背景的PNG格式文件,然后直接输出,背景变成了黑色,gif则没有这种情况. 解决方法:使用 imagesavealpha ($ ...

  3. 生成高清缩略图; 添加图片、文字水印; 图片、文字水印透明

    之前写了一个公共的ImgHelper类,主要提供高清晰缩略图生成,由于在之前的实际操作过程中存在一些问题,最近有了点时间,于是重新拾起来再改进一下,顺便研究一下GDI+. 问题一:产品搜索列表展示,每 ...

  4. 用电脑怎么快速抠图?怎么把图片抠成透明背景?

    相信很多小伙伴平时都有抠图(https://www.yasuotu.com/koutu)处理需求,比如制作微信透明头像.给图片换背景等.但是在大多数小伙伴的眼中,抠图需要借助PS这种专业的抠图工具来实 ...

  5. T4 如何去掉图片背景色变成透明

    如何去掉图片背景色变成透明?PhotoCap是一个简单易用的实现此功能的软件. 采用魔术擦,存为png版本,变可以去掉水印. Magic Eraser 软件链接:http://www.photocap ...

  6. html 图片透明字不透明,CSS实现背景图片透明,文字不透明效果的两种方法

    项目中经常会用到背景图上放一些文字介绍,这里介绍两种技术来实现背景图片透明,文字不透明效果,记录一下,方便日后学习. 1.毛玻璃效果:背景图 + 伪类 + flite:blur(3px) .demo1 ...

  7. OpenCV技巧 | 常用格式图片保存为透明背景图片(附Python源码)-教你轻松制作Logo

    导读 本文主要介绍使用OpenCV将常用格式图片保存为透明背景图片的方法与实现代码. 实现目标 本文的目标有如下两个: ① 将常见格式[jpg/png/bmp]白色背景图片转换保存为透明背景图片: ② ...

  8. C#  图片背景变为透明

    C#  图片背景变为透明 今天遇到从身份证读取信息粘贴到身份证模板身份身份证图片的需求,但是获取的身份证头像是带背景色的所以需要去掉背景色.CSDN找了半天都是bitmap.MakeTranspare ...

  9. html文本框背景text怎么变透明,css怎么设置背景图片透明文字不透明?

    项目中经常会用到背景图上放一些文字介绍,这里介绍两种技术来实现背景图片透明,文字不透明效果.下面我们来看一下这两种方法的使用. CSS实现背景图片透明,文字不透明效果的两种方法: 方法一(半透明效果) ...

最新文章

  1. 29 仿京东放大镜案例
  2. today便利 java_在Today今天便利店吃饭,你的要求可以再高一点
  3. STM32的时钟系统RCC详细整理(转)
  4. 敏捷开发模式下如何更好的进行测试
  5. 两种贝塞尔曲线选点方法的对比
  6. Python Lambda 的简单用法
  7. Android Scroller的使用及自我理解
  8. python模拟登录淘宝_Python模拟登陆淘宝示例源码
  9. 瑜伽扭身祈祷式动作教程
  10. SIR模型的应用 - Influence maximization in social networks based on TOPSIS(3)
  11. 托福学习计划留学考研
  12. 【ATSC】【OTT】Netflix将作为美国有线机顶盒界面中的一个频道
  13. 大数据营销在电商领域的应用案例
  14. python用法查询软件下载_布同自制Python函数帮助查询小工具
  15. 【深度之眼cs231n第七期】笔记(二十七)
  16. MapReduce重点知识
  17. zigbee中的CSMA-CA载波检测多路访问-碰撞避免和信标(Beacon)VS非信标(Nonbeacon)网络
  18. CodeBlocks+wxWidgets
  19. 微信公众平台开发之模板消息(Java)
  20. lqc_系统账号的安全管理

热门文章

  1. 【Python模块】matplotlib 柱状图
  2. Ubuntu真心不太适合搞开发啊
  3. wps在word文档中插入xlsx格式文档会自动打开
  4. Innovation - Face++ - 当人脸识别遇上互联网
  5. 景区宣传片制作的作用
  6. 热爱生活的人请过来看看:有没有通过叶子或花来识别植物的软件?
  7. 远程分支已经不存在的解决办法
  8. CI Weekly #21 | iOS 持续集成快速入门指南
  9. 做食品能入驻Lazada吗?带你解锁东南亚当地热销及需求食品系列
  10. ubuntu14.04系统假死及强制关机后产生的问题解决