使用粘贴的非透明图像上的枕头透明度

2024-05-15 15:53:50 发布

您现在位置:Python中文网/ 问答频道 /正文

让我先声明一句,我对图像/图形都不了解,所以我可能对这里的某些东西缺乏基本的理解

我正在尝试将一个图像(game_image)粘贴到我的基础图像(image)上,并在顶部添加一个透明覆盖层(overlay_image),以便为文本添加一些变暗效果

以下是预期结果的示例:

enter image description here

下面是我当前代码生成的示例:

enter image description here

这是我目前的代码:

from PIL import Image, ImageFont, ImageDraw

# base image sizing specific to Twitter recommended
base_image_size = (1600, 900)
base_image_mode = "RGBA"
base_image_background_color = (0, 52, 66)

image = Image.new(base_image_mode, base_image_size, base_image_background_color)

# game_image is the box art image on the left side of the card
game_image = Image.open("hunt.jpg")
image.paste(game_image)

# overlay_image is the darkened overlay over the left side of the card
overlay_image = Image.new(base_image_mode, base_image_size, (0, 0, 0))
overlay_image.putalpha(128)

# x position should be negative 50% of base canvas size
image.paste(overlay_image, (-800, 0), overlay_image)
image.save("test_image.png", format="PNG")

您可以看到,游戏图像某种程度上继承了覆盖层的透明度。我怀疑这与我上面的粘贴中添加的mask有关,但我试着研究掩蔽是什么&;在任何情况下,我都无法理解它

如果您能帮助我理解为什么会发生这种情况和/或如何解决,我们将不胜感激


Tags: ofthe图像imagegame示例basesize