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()
代码行给出了错误。我不太明白为什么PIL会为同一图像提供透明度错误。我相信没有必要指定模式,因为掩码和图像是相同的。
答案 0 :(得分:1)
我用以下方法解决了类似的问题:
替换img_orig = Image.open("me.jpg")
与img_orig = Image.open("me.jpg").convert('RGBA')
并替换canvas_gb = Image.new("RGB", img_orig.size, color=(0,0,0))
与canvas_gb = Image.new("RGBA", img_orig.size, color=(0,0,0))
答案 1 :(得分:0)
图像缺少alpha值
img_orig = Image.open(“me.jpg”) img_orig.putalpha(255)
解决问题