Aller au contenu

Problème de transparence des images


Chevalier Saphir

Messages recommandés

Nouveau, 18ans Posté(e)
Chevalier Saphir Nouveau 4 messages
Baby Forumeur‚ 18ans‚
Posté(e)

Bonjour ! J'ai un problème pour rendre transparentes certaines couleurs des images sur pygame.
Je crois savoir qu'il faut utiliser image.set_colorkey(CODE RGB) mais ça ne marche pas avec moi, et pourtant je n'obtient aucun message d'erreur, est-ce qu'il existe une autre méthode ?

Merci !

Si ça peut vous aider, voilà mon script :

import pygame
from pygame.locals import *
 
pygame.init()
 
#Ouverture fenêtre Pygame
fenetre = pygame.display.set_mode((640, 480),RESIZABLE)
pygame.display.flip()
 

# personnage
image = pygame.image.load("image.png").convert_alpha()
image.set_colorkey((255,255,255))
fenetre.blit(image, (200,300))
 
#Rafraîchissement de l'écran
pygame.display.flip()
 
#BOUCLE INFINIE
continuer = True
while continuer:
    for event in pygame.event.get():
        if event.type == QUIT:
            continuer = False

pygame.quit()
 

Lien à poster
Partager sur d’autres sites

Annonces
Maintenant
Invité riad**
Invités, Posté(e)
Invité riad**
Invité riad** Invités 0 message
Posté(e)

Sans lire l'ensemble de ton message et sans chercher je te réponds à la va-vite :

Évidemment que t'auras un problème de transparence parce que le mode RGB ne possède pas de canal alpha, cherche dans la documentation de pygame le support du profil RGBA.

Lien à poster
Partager sur d’autres sites

Invité riad**
Invités, Posté(e)
Invité riad**
Invité riad** Invités 0 message
Posté(e)

image = pygame.image.load("image.png").convert_alpha()

La pygame ajoute le canal alpha donc tu dois renseigner un tuple de quatre nombre le Rouge, le vert, le bleu et l'alpha :
RGBA(255,255,255, 0) te donne une couleur complétement transparente.

RGBA(255,255,255, 128) te donne un blanc semi-transparent.

RGBA(255,255,255, 255) te donne du blanc opaque.

Lien à poster
Partager sur d’autres sites

Invité riad**
Invités, Posté(e)
Invité riad**
Invité riad** Invités 0 message
Posté(e)

Si le problème n'est pas reglé c'est peut être que le fond de ton image n'est pas complétement blanc, dans ce cas utilise à la place de la couleur image.get_at((0, 0)), pygame va alors chercher la couleur du premier pixel en haut à gauche de l'image et rendre toutes les couleurs similaires transparentes.

image.set_colorkey(image.get_at((0,0)))

 

Lien à poster
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×