【发布时间】:2012-04-14 14:10:41
【问题描述】:
我有一个 png 图像作为背景,我想在这个背景中添加一个透明网格,但这不能按预期工作。背景图像在我应用透明网格的地方转换为透明。
我在做:
from PIL import Image, ImageDraw
map_background = Image.open(MAP_BACKGROUND_FILE).convert('RGBA')
map_mesh = Image.new('RGBA', (width, height), (0, 0, 0, 0))
draw = ImageDraw.Draw(map_mesh)
# Create mesh using: draw.line([...], fill=(255, 255, 255, 50), width=1)
...
map_background.paste(map_mesh, (0, 0), map_mesh)
但结果是:
如果你仔细看,你可以看到一个棋盘图案(在图形程序中用作无背景)。透明线使背景层在两个图层相遇的地方也透明。但我只希望将透明线添加到背景之上。
我可以解决它:
map_background.paste((255,255,255), (0, 0), map_mesh)
但是由于我对不同的线条使用不同的颜色,所以我必须为每个颜色制作这个过程。如果我有 100 种颜色,那么我需要 100 层,这不是很好的解决方案。
【问题讨论】:
标签: python python-imaging-library