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')
相关推荐
2303_82128738几秒前
mysql在事务中执行DDL的后果_MySQL 8.0之前的限制
jvm·数据库·python
2301_769340673 分钟前
Golang怎么用gRPC Gateway_Golang gRPC Gateway教程【经典】
jvm·数据库·python
Jetev4 分钟前
HTML函数运行时触控屏失灵是硬件故障吗_输入层兼容性测试【详解】
jvm·数据库·python
毋语天4 分钟前
Python 进阶:元组、字典、集合与函数全解析
开发语言·python
wang3zc4 分钟前
Golang怎么实现SSE服务端推送事件_Golang如何用Server-Sent Events实时推送数据【教程】
jvm·数据库·python
yexuhgu6 分钟前
c++ trpc-cpp框架 c++如何使用腾讯trpc构建微服务
jvm·数据库·python
夏恪6 分钟前
Go语言如何连接Redis_Go语言Redis连接操作教程【进阶】
jvm·数据库·python
MATLAB代码顾问8 分钟前
哈里斯鹰优化算法(HHO)原理与Python实现
python·算法·机器学习
2501_9012005310 分钟前
如何用 Network 面板的性能节流模拟弱网环境下的加载
jvm·数据库·python
学习中.........12 分钟前
操作系统底层原理、Java API 封装、以及高性能软件架构模式
java·开发语言