La superposition de deux de même taille des images en Python
J'ai deux images qui sont exactement les mêmes dimensions, tout ce que je suis en train de faire est de prendre un, c'est 50% transparent et placez-la directement sur le dessus de l'autre, comme suit:
import Image
background = Image.open("bg.png")
overlay = Image.open("over.png")
background = background.convert("RGBA")
overlay = overlay.convert("RGBA")
background_pixels = background.load()
overlay_pixels = overlay.load()
for y in xrange(overlay.size[1]):
for x in xrange(overlay.size[0]):
background_pixels[x,y] = (background_pixels[x,y][0], background_pixels[x,y][1], background_pixels[x,y][2], 255)
for y in xrange(overlay.size[1]):
for x in xrange(overlay.size[0]):
overlay_pixels[x,y] = (overlay_pixels[x,y][0], overlay_pixels[x,y][1], overlay_pixels[x,y][2], 128)
background.paste(overlay)
background.save("new.png","PNG")
Mais tout ce que j'obtiens est le 50% de recouvrement transparent (donc la moitié du chemin!).
La boucle sur l'arrière-plan pour obtenir 0% de transparence peut ne pas être nécessaire.
OriginalL'auteur jdborg | 2012-05-17
Vous devez vous connecter pour publier un commentaire.
Essayez d'utiliser mélange() au lieu de coller() - il semble coller() remplace l'image d'origine à ce que vous venez de coller.
Je vais essayer de mettre à jour
Je suis sur 1.1.7 qui est la dernière
triés! merci.
OriginalL'auteur egor83
Peut-être trop vieille question, qui peut être fait avec facilité à l'aide de
opencv
Documentation lien
OriginalL'auteur rainversion_3
Fournir la superposition alpha paramètre de masque et de voir si cela donne des résultats attendus:
OriginalL'auteur dolphin