def apply_alpha(img, alpha_value):
print("alpha_value" + str(alpha_value))
mask_value = int(alpha_value * 255)
print("mask_value" + str(mask_value))
img.putalpha(mask_value)
return img
def apply_alpha(img, alpha_value):
import copy
tmp = copy.copy(img)
print("alpha_value" + str(alpha_value))
mask_value = int(alpha_value * 255)
print("mask_value" + str(mask_value))
tmp.putalpha(mask_value)
return tmp
working_image = apply_alpha(obs, alpha)
我尝试了上述两个apply_alpha函数,其中“ img”是一个PIL图像,但它们都不能正确应用alpha(没有任何变化)。
我将合成图像的各个图块缝合在一起,并使用“ put alpha”设置每个图块的透明度。我相信合并单个图块的“粘贴”操作会删除每个单独图像的putalpha。我该如何使用它?
我正在使用此merge_images将各个图块图像缝合在一起:Stitching Photos together
此方案与其他提出的问题有所不同,因为img.putalpha(...)在函数中使用,导致其无法正常工作
答案 0 :(得分:0)
我发现了:问题的原因在于,在图像的合并功能中,有以下代码:
result = Image.new('RGB', (result_width, result_height))
result.paste(im=img1, box=(0, 0), mask=img1)
result.paste(im=img2, box=(width1, 0), mask=img2)
由于图像类型为“ RGB”,因此在合成拼贴时忽略了Alpha通道。确保图像类型为“ RGBA”