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

AWT/Swing Java Discussion :

Utiliser une image avec transparence comme icône d'application


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de bobuse
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 232
    Par défaut Utiliser une image avec transparence comme icône d'application
    Bonjour,

    Je cherche à mettre un logo en icône de mon application, c'est-à-dire dans la décoration de la fenêtre.
    Pour ça, j'utilise la méthode setIcon de ma JFrame.
    Le logo s'affiche bien, mais tous les pixels transparents sont gris ! J'ai trouvé un post qui parlait de problème avec le PNG qui serait mal géré, j'ai essayé en GIF c'est pareil !

    Des idées ?

    Pour info, mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            String icon = "/logo.gif";
            URL iconURL = this.getClass().getResource(icon);
            if (iconURL != null) {
            	Image img = new ImageIcon(iconURL).getImage();
            	this.setIconImage(img);
            }
    J'ai essayé une autre méthode consistant à passer par une BufferedImage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
            String icon = "/logo.png";
            URL iconURL = this.getClass().getResource(icon);
            if (iconURL != null) {
            	Image img = new ImageIcon(iconURL).getImage();
            	BufferedImage theImage = GraphicsEnvironment.getLocalGraphicsEnvironment().
                getDefaultScreenDevice().
                getDefaultConfiguration().
                createCompatibleImage(img.getWidth(null),
                                      img.getHeight(null),
                                      Transparency.BITMASK);
                                      //Transparency.TRANSLUCENT);
            	theImage.getGraphics().drawImage(img,0,0,null);
            	this.setIconImage(theImage);
            }
    ça ne marche pas non plus

    Merci

  2. #2
    Membre éprouvé Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Par défaut
    SAlut,

    je conseille de reprendre l image avec GIMP et de bien mettre le tour en transparent

  3. #3
    Membre expérimenté
    Avatar de bobuse
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 232
    Par défaut
    Merci de ta réponse.

    Le tour est bien transparent. J'ai essayé de passer en couleurs indexées pour voir au cas où, mais pareil : du gris.

  4. #4
    Membre expérimenté
    Avatar de bobuse
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 232
    Par défaut
    J'ai mis en PJ l'aperçu du résultat sur ma Kubuntu Linux 6.10
    Images attachées Images attachées  

  5. #5
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 901
    Billets dans le blog
    54
    Par défaut
    Il semble que cela depend grandement des OS et du systeme de fenetrage en fait et ca ne vient pas particulierement du PNG en soit (c'est probablement un defaut de la lib Java qui fait la jonction avec l'OS je pense). Dans mon cas :
    - sous XP les pixels completements transparents deviennent transparents, ceux dont l'opacite est variable deviennent opaques.
    - sous KDE et GNOME, ca deraille completement et mes icones tirent toujours vers le vert qu'elles soient transparentes ou non.
    Images attachées Images attachées  
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  6. #6
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    ON va dire que pour tout ce qui est linux, sun ne suis pas forcément ce qui est fait au niveau de freedesktop.org au niveau des différents WM, et puis ces WM bougent justement beaucoup entre incréments mineurs et majeurs (développement open source assez suivi).

    Par contre je subodore qu'à ce niveau la le passage de java en Open Source va faire pas mal de bien. (surtout du coté des WM non Gnome, en particulier KDE où il y a pas mal de taf à faire: pas de l&f natif viable et comportement des applis desktop java un peu bizarre par moments, de même pour les autres WM comme Enlightenment, FluxBox &cie)

    plus que deux ans à attendre (sans compter les betas qui tourneront ^^)

Discussions similaires

  1. [Débutant] Affichage d'une image avec transparence
    Par tchoupie.m dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 12/07/2012, 12h36
  2. Rendre floue une image avec transparence
    Par Walm dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 14/05/2008, 08h22
  3. Réponses: 1
    Dernier message: 13/05/2008, 19h46
  4. Obtenir une image avec un fond transparent
    Par LeXo dans le forum Imagerie
    Réponses: 9
    Dernier message: 28/03/2007, 11h38
  5. Utiliser une image DirectX avec GDI?
    Par Fynchi dans le forum DirectX
    Réponses: 11
    Dernier message: 02/11/2006, 09h36

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