web-dev-qa-db-ja.com

Python Imaging Library?

次のようにPython Imaging Libraryで画像を背景に貼り付けようとしています:

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")

このコードを実行すると、次のようになります。

 "ValueError: bad transparency mask"

何を間違えたのですか?

21
Paul Vorobyev

ここではゲームに遅れましたが、同じ問題に遭遇しました。いくつかグーグルした後、使用されているすべての画像が同じモード(特に「RGBA」)であることを確認することで、マスクを機能させることができました。

あなたはこれを試すかもしれません:

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