“ImageDraw”对象在使用时没有属性“load”图片.putalpha()

2024-09-30 16:32:20 发布

您现在位置:Python中文网/ 问答频道 /正文

代码:

    avatar = Image.open('temp_avatar.png').convert('RGBA')
    color = (255,255,255,0)
    mask = Image.new("L", avatar.size, 0)
    mask_draw = ImageDraw.Draw(mask)

    size = avatar.width
    mask_draw.polygon([~irrelevant~], fill=255)

    avatar_finale = avatar.copy()
    avatar_finale.putalpha(mask_draw)
    avatar_finale.save('temp_avatar.png')

错误消息:

  File "C:\Users\amit2\source\repos\LAKRIS bot\LAKRIS bot\cogs\rank.py", line 42, in processing
avatar_finale.putalpha(mask_draw)
  File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages\PIL\Image.py", line 1654, in putalpha
    alpha.load()
AttributeError: 'ImageDraw' object has no attribute 'load'

我真的不知道问题出在哪里,我用.putalpha()运行了一个非常类似的代码,结果成功了。你知道吗


Tags: 代码pyimagesizepngbotmasktemp
1条回答
网友
1楼 · 发布于 2024-09-30 16:32:20

倒数第二行是错误的-它试图把绘制对象的面具,而不是面具本身,本身到阿尔法通道。你知道吗

因此,替换:

avatar_finale.putalpha(mask_draw)

使用:

avatar_finale.putalpha(mask)

相关问题 更多 >