Python get-ValueError:尝试粘贴时透明度掩码不正确,图像和掩码相同

Python get-ValueError:尝试粘贴时透明度掩码不正确,图像和掩码相同,python,python-imaging-library,Python,Python Imaging Library,代码行给出的错误在代码中给出。我不太明白为什么PIL会给同一个图像带来透明度错误。我相信没有必要指定模式,因为遮罩和图像是相同的。图像缺少alpha值 import numpy as np from PIL import Image img_orig = Image.open("me.jpg") # convert pic to 3-D array array_orig = np.array(img_orig) # create R image array_r = np.copy(a

代码行给出的错误在代码中给出。我不太明白为什么PIL会给同一个图像带来透明度错误。我相信没有必要指定模式,因为遮罩和图像是相同的。

图像缺少alpha值

import numpy as np

from PIL import Image



img_orig = Image.open("me.jpg")

# convert pic to 3-D array
array_orig = np.array(img_orig)

# create R image
array_r = np.copy(array_orig)
array_r[:, :, 1:3] = 0
img_r = Image.fromarray(array_r)

# create GB image
array_gb = np.copy(array_orig)
array_gb[:, :, 0] = 0
img_gb = Image.fromarray(array_gb)

canvas_r = Image.new("RGB", img_orig.size, color=(0,0,0))
canvas_r.paste(img_r, (5, 5), img_r) #error line

canvas_gb = Image.new("RGB", img_orig.size, color=(0,0,0))
canvas_gb.paste(img_gb, (0, 0), img_gb)

result_array = np.array(canvas_r) + np.array(canvas_gb)
result = Image.fromarray(result_array)
result.show()

解决了问题。

我解决了一个类似的问题:

替换
img\u orig=Image.open(“me.jpg”)

使用
img\u orig=Image.open(“me.jpg”).convert('RGBA')

并替换
canvas\u gb=Image.new(“RGB”,img\u orig.size,color=(0,0,0))

使用
canvas\u gb=Image.new(“RGBA”,img\u orig.size,color=(0,0,0))

img_orig = Image.open("me.jpg")
img_orig.putalpha(255)