Bitmap非透明区域着色求助:已去背景,需为剩余区域随机上色
为透明背景图片的非透明区域填充随机颜色
问题描述
已完成图片背景透明化处理,需为剩余非透明区域填充随机颜色。
处理前图片:
已去背景的图片:
解决方案(基于Python Pillow库)
适合图像处理新手,操作步骤简单:
- 安装依赖库
执行命令安装Pillow:
pip install pillow
- 实现代码
from PIL import Image import random # 打开已去背景的图片,转为RGBA模式保留透明度 img = Image.open("E91PD.png").convert("RGBA") width, height = img.size # 生成0-255范围的随机RGB颜色 random_color = (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)) # 创建填充了随机颜色的图层 color_layer = Image.new("RGBA", (width, height), random_color) # 提取原图的alpha通道作为掩码,仅针对非透明区域操作 alpha_mask = img.split()[3] # 合并颜色图层与原图,仅在非透明区域填充随机色 result = Image.composite(color_layer, img, alpha_mask) # 保存处理后的图片 result.save("colored_result.png")
- 代码说明
- 转RGBA模式是为了保留图片的透明度通道信息
- 用alpha通道作为掩码,确保随机颜色只填充到原图片的非透明区域
- 生成的随机颜色覆盖原非透明区域的原有色彩,保留透明度属性
无代码替代方案
若不想编写代码,可使用Canva、Pixlr等在线图片编辑工具:
- 上传已去背景的图片
- 通过工具的「选择主体」功能快速选中非透明区域
- 在填充工具中选择随机色或手动生成颜色完成填充
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

