IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tkinter Python Discussion :

Transparence d'image sans alpha


Sujet :

Tkinter Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Par défaut Transparence d'image sans alpha
    Bonjour à tous,

    Je voudrais afficher une image de la manière suivante: les pixels d'une certaine couleurs ne doivent pas être affichés et doivent laisser le 'background' inaltéré (il s'agira de la couleur d'un coin de l'image).

    J'ai trouvé ce code http://www.daniweb.com/code/snippet301514.html. Toutefois cette solution est lourde: elle recrée une seconde image et utilise le canal transparence.

    Je cherche donc une solution plus simple. En pygame par exemple, la fonction Surface.set_colorkey permet d'arriver au meme résultat sans utiliser ni le canal transparence ni la création d'une nouvelle image (http://www.pygame.org/docs/ref/surface.html)

    Merci d'avance pour votre aide

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 068
    Par défaut
    je ne connais pas tKinter mais je suppose que cet exemple signifie que la lib ne gère pas le 'color_key', donc à part passer par une image avec un canal alpha ou du pixel par pixel je ne vois pas ...
    que veux-tu faire avec tKinter que tu ne puisses faire avec Pygame ?

  3. #3
    Membre Expert
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Par défaut
    Pygame ne peut pas gérer deux fenêtres, et je cherche à debugger un jeu reseau en faisant tourner plusieurs clients en local sur ma machine, chaque client ayant sa fenetre

  4. #4
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Bonsoir,

    Cela fonctionne pour moi avec Photoimage et les gif.

    Bon code

  5. #5
    Membre très actif
    Avatar de afranck64
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 592
    Par défaut
    Bonsoir,

    Je travaille avec Tkinter et je ne pense pas que tu puisse directement le faire dans Tkinter ( avec le Canvas) tu devrais comme PauseKawa l'a dit d'abord modifier ton Image avec PIL.ImageTk et la convertir en PIL.ImageTk.PhotoImage et ensuite l'afficher...

    @+ et bon code
    Win 10 64 bits / Linux Mint 18, - AMD A6 Quad: Py27 / Py35
    CONTENU D'UNE QUESTION
    Exemples:
    - Configuration (système d'exploitation, version de Python et des bibliothèques utilisées)
    - Code source du morceau de programme où il y a un bogue
    - Ligne de code sur laquelle le bogue apparaît
    - Erreur complète retournée pas l'interpréteur Python
    - Recherche déjà effectuée (FAQ, Tutoriels, ...)
    - Tests déjà effectués

  6. #6
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Bonsoir,

    Le maximum que tu puisse faire en Tkinter pur pour la transparence c'est avec les gif me semble t'il.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    import Tkinter
    from Tkconstants import *
    root = Tkinter.Tk()
    img=Tkinter.PhotoImage(file="br.gif")
    frame=Tkinter.Frame(root)
    frame.pack()
    canvas=Tkinter.Canvas(frame,bg ='black', width=150,height=150)
    canvas.pack()
    canvas.create_image(50, 50, image=img)
    root.mainloop()
    Après c'est avec PIL comme le signale afranck64.

    Par contre, puisque tu en parle, et vu ton dernier sujet, pourquoi insister si tu as tout en Pygame ?

    Bon code
    Images attachées Images attachées  

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Transparence des images PNG sous Internet Explorer
    Par Torpedox dans le forum Webdesign & Ergonomie
    Réponses: 12
    Dernier message: 14/10/2008, 23h41
  2. Afficher une image sans URL dans un forum
    Par Vanesse dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 2
    Dernier message: 01/03/2006, 17h55
  3. Réponses: 7
    Dernier message: 19/12/2005, 08h54
  4. [J2ME][MIDlet]rafraichir une image sans toucher au form?
    Par noobiewan kenobi dans le forum Java ME
    Réponses: 1
    Dernier message: 05/09/2005, 09h54
  5. Afficher une image sans passer par les textures
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/05/2003, 19h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo