Python无法更新PIL图片中的alpha参数

时间:2019-01-07 07:05:41

标签: python python-imaging-library

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(...)在函数中使用,导致其无法正常工作

1 个答案:

答案 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”