Maison  >  Article  >  développement back-end  >  Pourquoi les PNG transparents apparaissent-ils noirs lorsqu'ils sont Blittés dans Pygame ?

Pourquoi les PNG transparents apparaissent-ils noirs lorsqu'ils sont Blittés dans Pygame ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-30 20:15:18563parcourir

Why Do Transparent PNGs Appear Black When Blitted in Pygame?

Résoudre les problèmes de transparence lors du blitting de fichiers PNG dans Pygame

Lorsque vous travaillez avec des images dans Pygame, il est crucial de s'assurer que la transparence est gérée correctement pour éviter les artefacts visuels inattendus. Un problème courant est que les sections transparentes des images PNG apparaissent en noir lorsqu'elles sont collées sur une surface. Ce problème survient en raison de paramètres de transparence manquants dans les propriétés de l'image.

Pour résoudre ce problème, Pygame suggère d'utiliser la méthode convert_alpha() après le chargement de l'image PNG. Ce processus modifie les paramètres de transparence de l'image, permettant une transparence par pixel et garantissant que les sections transparentes s'affichent comme prévu. Vous trouverez ci-dessous une version révisée de votre code intégrant ce correctif :

import pygame

screen = pygame.display.set_mode((800, 600), pygame.DOUBLEBUF, 32)
world = pygame.Surface((800, 600), pygame.SRCALPHA, 32)
treeImage = pygame.image.load("tree.png");
treeImage = treeImage.convert_alpha() # Added this line
world.blit(treeImage, (0,0), (0,0,64,64))
screen.blit(world, pygame.rect.Rect(0,0, 800, 600))

En effectuant cette modification, vous devriez maintenant voir les sections transparentes de l'image PNG s'afficher correctement lorsqu'elles sont collées sur la surface. Cela éliminera le problème des zones transparentes apparaissant en noir et garantira que vos images conservent leur transparence souhaitée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn