2015-07-07 21 views
10

:Python Görüntüleme Kitaplığı ile bir görüntüyü diğerine yapıştırırken "ValueError: kötü şeffaflık maskesi"? Böyle Python Imaging Library ile bir backgorund üzerine bir görüntüyü yapıştırmak için çalışıyorum

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

Bu kodu çalıştırdığınızda, alıyorum:

"ValueError: bad transparency mask" 

Neyi yanlış yaptık?

+1

mu 'card.paste (img, (0, 0, x, y))' çalışmaları? (Saydamlık maskesi olmadan) –

+0

Daniel: Saydamlıktan kurtulmak programın çökmesine neden olmaz, ancak renkler garip görünür ve görüntü biraz "grenli" kaliteye sahiptir. –

+0

Sadece renk hatasının başka bir şeyden kaynaklandığını fark ettik (bg görüntüsünü RGBA olarak ayarlamadı). Saydamlık maskesi olmadan yapıştırmak aslında amaçlandığı gibi çalışır. Teşekkür ederim :) –

cevap

14

Oyuna geç kaldı, ama daha önce aynı konuya girdim. Bazı kullanıcılardan sonra, kullanılan tüm görüntülerin aynı modda (özellikle "RGBA") olduğundan emin olmak için maskemi çalıştırabildim.

Bu deneyebilirsiniz:

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