Python ValueError: bad transparency mask

修改前

修复后

运行正常

复制代码
from PIL import Image

# 读取图片
#报错信息解决ValueError: bad transparency mask--相关文档地址https://blog.csdn.net/kalath_aiur/article/details/103945309
#1. 检查 alpha 通道是否是一个有效的掩码。如果不是,则需要对 alpha 通道进行处理或修复。
#2. 如果 alpha 通道无效,可以尝试使用 Image.convert() 函数将图像转换为 RGBA 模式,然后重新生成 alpha 通道
guoqi = Image.open('image/5star.png').convert("RGBA")
touxiang = Image.open('image/head.png').convert("RGBA")

# 获取国旗的尺寸
x,y = guoqi.size
# 根据需求,设置左上角坐标和右下角坐标(截取的是正方形)
quyu = guoqi.crop((262,100, y+62,y-100))

# 获取头像的尺寸
w,h = touxiang.size
# 将区域尺寸重置为头像的尺寸
quyu = quyu.resize((w,h))
# 透明渐变设置
for i in range(w):
    for j in range(h):
        color = quyu.getpixel((i, j))
        alpha = 255-i//3
        if alpha < 0:
            alpha=0
        color = color[:-1] + (alpha, )
        quyu.putpixel((i, j), color)

# 粘贴到头像并保存
touxiang.paste(quyu,(0,0),quyu)
touxiang.save('image/五星红旗半透明渐变头像.png')
相关推荐
Chase_______12 小时前
计算机数据存储全解:从底层进制转换到存储介质演进
java·开发语言·python
栉甜12 小时前
Js进阶(4)
开发语言·javascript·原型模式
小碗羊肉12 小时前
【JavaWeb | 第七篇】部门管理项目实战
java·开发语言·servlet
维诺菌13 小时前
claude code安装
java·开发语言·ai编程·calude
谙弆悕博士13 小时前
快速学C语言—— 第0章:C语言简介
c语言·开发语言·经验分享·笔记·程序人生·课程设计·学习方法
构建的乐趣13 小时前
测度(Measure)和概率测度(Probability Measure) 测度和度量的区别
python
顶点多余13 小时前
自定义协议、序列化、反序列化实现
java·linux·开发语言·c++·tcp/ip
清水白石00813 小时前
把事故变成护城河:如何设计回归测试,防止“订单重复创建”这类历史 Bug 卷土重来?
python·bug
狐狐生风13 小时前
LangGraph 工具调用集成
python·langchain·prompt·agent·langgraph
风味蘑菇干13 小时前
使用接口定义规范,实现类完成具体逻辑。
java·开发语言