我对Python非常陌生,正在探索它的用法来允许用户构建自定义图像。想法是客户端会选择一些选项,然后在服务器上创建图像,然后下载(或在服务器端用于其他事情)。
该图像由许多图像组成,其中大部分是小图标类型的不规则形状图像,并具有透明度。所有图层都是.png
文件。
我尝试使用Pillow,但似乎顶层透明性需要与整个图像大小相同才能正确使用。
到目前为止,我尝试过:
from PIL import Image
background = Image.open("Background.png")
foreground = Image.open("Trim.png")
fire = Image.open("Type_Fire_Large.png")
background = Image.alpha_composite(background, foreground)
background.paste(fire, (150, 150))
background.show()
这张图片看起来像这样:
Background.png
是有阴影的“噪点”,Trim.png
是灰色的对角线。最棒的是:Trim.png
中心是透明的,并且能够在中间显示Background.png
。但它也与图像的大小相同。
问题在于 Fire
;注意到有那个黑边框(和奇怪的紫红色圆点)。文档说明覆盖图像需要与原图相同大小。但这似乎是一个常见的场景,即有人想要将一个更小、带透明度的图标放在另一幅图像上方,并将它们组合成一幅图像。
我没有固定使用任何特定库,我完全开放思路和其他选择。我唯一尝试做的就是保持简单,因此创建整个游戏引擎之类的东西来生成图像可能会太过复杂。