Comment puis-je blit un PNG avec une certaine transparence sur une surface dans Pygame?
Je suis en train de blit une image PNG sur une surface, mais la partie transparente de l'image vire au noir pour une raison quelconque, voici le code simple:
screen = pygame.display.set_mode((800, 600), pygame.DOUBLEBUF, 32)
world = pygame.Surface((800, 600), pygame.SRCALPHA, 32)
treeImage = pygame.image.load("tree.png")
world.blit(treeImage, (0,0), (0,0,64,64))
screen.blit(world, pygame.rect.Rect(0,0, 800, 600))
Que dois-je faire pour résoudre le problème?
L'image a de la transparence alpha, j'ai ouvert dans PhotoShop et le fond devient transparent, ce n'est pas noir ou blanc ou toute autre couleur.
Merci pour votre soutien 🙂
OriginalL'auteur Eric | 2009-10-27
Vous devez vous connecter pour publier un commentaire.
http://www.pygame.org/docs/ref/image.html recommande:
en fait, l'appel
convert()
ouconvert_alpha()
est encore préféré car ne pas le faire signifie que blits tous avoir le format de pixel de conversion, ce qui est extrêmement lent.OriginalL'auteur Nick T
Vous ne retournez pas l'doublebuffer.
Cela devrait fonctionner pour votre problème.
OriginalL'auteur Guest
Votre code semble que ça devrait être correct. La librairie SDL ne prend pas en charge l'alpha alpha blitting comme ça, mais Pygame ajout du support pour il y a quelques temps. Dans Pygame 1.8 ont été ajoutées pour personnaliser les modes de fusion, et je me demande si c'retiré Pygame interne de l'alpha-alpha blitter?
Hélas, de nouvelles études seront nécessaires.
OriginalL'auteur Peter Shinners