web-dev-qa-db-fra.com

"ValueError: mauvais masque de transparence" lors du collage d'une image sur une autre avec Python Imaging Library?

J'essaie de coller une image sur un arrière-plan avec Python Imaging Library comme ceci:

card = Image.new("RGB", (220, 220), (255, 255, 255))
img = Image.open("/Users/paulvorobyev/test.png")

...

x, y = img.size
card.paste(img, (0, 0, x, y), img)

card.save("test.png")

Lorsque j'exécute ce code, j'obtiens:

 "ValueError: bad transparency mask"

Qu'ai-je fait de mal?

21
Paul Vorobyev

Tard dans le jeu ici, mais je suis juste tombé sur le même problème. Après quelques recherches sur Google, j'ai réussi à faire fonctionner mon masque en m'assurant que toutes les images utilisées étaient du même mode (en particulier "RGBA").

Vous pourriez essayer ceci:

card = Image.new("RGBA", (220, 220), (255, 255, 255))
img = Image.open("/Users/paulvorobyev/test.png").convert("RGBA")
x, y = img.size
card.paste(img, (0, 0, x, y), img)
card.save("test.png", format="png")
48
Jeremy