Ho un'immagine png come sfondo e voglio aggiungere una mesh trasparente a questo sfondo ma questo non funziona come previsto. L'immagine di sfondo viene convertita in trasparente nei luoghi in cui applico la mesh trasparente.Unione di sfondo con immagine trasparente in PIL
che sto facendo:
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)
Ma il risultato è:
si può vedere un modello a scacchiera se si guarda con attenzione (utilizzato in programmi di grafica come senza sfondo). Le linee trasparenti rendono il livello di sfondo trasparente anche nei punti in cui entrambi i livelli si sono incontrati. Ma voglio solo che la linea trasparente sia aggiunta in cima allo sfondo.
posso risolverlo con:
map_background.paste ((255,255,255), (0, 0), map_mesh)
ma come io uso i colori diversi per diverse linee, avrei dovuto fare per ogni colore questo processo. Se avessi 100 colori, quindi ho bisogno di 100 strati che non è una soluzione molto buona.
Eventuali duplicati di http://stackoverflow.com/questions/5324647/how-to-merge-a-transparent-png-image-with-another-image-using- pil –