python - 使用 Image.putalpha() 时,“ImageDraw”对象没有属性 'load'

标签 python python-imaging-library

代码:

    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() 运行了一个非常相似的代码并且它有效。

最佳答案

你的倒数第二行是错误的 - 它试图将 mask 的 Draw 对象,而不是 mask 本身,放入 Alpha channel 。

所以,替换:

avatar_finale.putalpha(mask_draw)

与:

avatar_finale.putalpha(mask)

关于python - 使用 Image.putalpha() 时,“ImageDraw”对象没有属性 'load',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59426670/

相关文章:

python - 使用 PIL 在保持透明度的同时对图像进行着色?

python - 如何使用嵌套字典映射数据框中的列?

python - 调整地面实况图像的大小,而不更改标签

python - 更改 GUI 库 : QT, wxPython...还有什么?

python - Spyder 插件 (spyder-autopep8)

python - PIL 图像的简单哈希

python - 使用 Python TKinter/imageTK 在屏幕上的图像之间淡入淡出

python - 如何使用Python生成带有大写字母图像的高质量Windows图标?

python - 使用 django 和 sqlite 存储 BLOB 数据

python - 迄今为止的奇怪日期字符串