在使用图片的时候有时候我们希望把背景变成透明的,这样就只关注于图片本身。解决办法:我们需要使用RGBA(Red,Green,Blue,Alpha),将alpha的透明度变为0,这样就可以了,但是效果不是很好,如果想好一点的操作,个人觉得要抠图。后面再来优化。
from PIL import Image
pic = Image.open('/Users/xujun/Desktop/1.png')
pic = pic.convert('RGBA') # 转为RGBA模式
width,height = pic.size
array = pic.load() # 获取图片像素操作入口
for i in range(width):
for j in range(height):
pos = array[i,j] # 获得某个像素点,格式为(R,G,B,A)元组
# 如果R G B三者都大于240(很接近白色了,数值可调整)
isEdit = (sum([1 for x in pos[0:3] if x > 240]) == 3)
if isEdit:
# 更改为透明
array[i,j] = (255,255,255,0)
# 保存图片
pic.save('result.png')
可以看一下处理前后的对照图,总体扣除了:
原创文章(本站视频密码:66668888),作者:xujunzju,如若转载,请注明出处:https://zyicu.cn/?p=9266