from PIL import Image


def sketch_to_transparent(image, mask, transparency):
    # 打开原始图片
    image = image.convert("RGBA")
    # 打开mask图片，假设mask图片是灰度图，白色区域为要处理的区域，黑色区域为保留的区域
    mask = Image.fromarray(mask)

    # 根据透明度调整因子，将透明度转换为0-255之间的值
    alpha_value = int((1 - transparency) * 255.0)

    # 获取图片的像素数据
    image_pixels = image.load()
    mask_pixels = mask.load()

    width, height = image.size

    for y in range(height):
        for x in range(width):
            # 如果mask区域对应的像素为白色（值大于128，这里假设白色为要处理的区域，可根据实际情况调整）
            if mask_pixels[x, y] > 128:
                r, g, b, a = image_pixels[x, y]
                image_pixels[x, y] = (r, g, b, alpha_value)

    return image
