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

  1. #1
    Membre actif
    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
    Points : 269
    Points
    269
    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 expérimenté Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Points : 1 572
    Points
    1 572
    Par défaut
    SAlut,

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

  3. #3
    Membre actif
    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
    Points : 269
    Points
    269
    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 actif
    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
    Points : 269
    Points
    269
    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 866
    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 866
    Points : 22 912
    Points
    22 912
    Billets dans le blog
    51
    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  

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    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 ^^)

  7. #7
    Membre actif
    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
    Points : 269
    Points
    269
    Par défaut
    Bon d'un côté ça me rassure. Le problème ne vient pas de moi

    Par contre, c'est bizarre, car eclipse utilise bien la JVM de sun et a une icône transparente ... peut-être que c'est SWT qui améliore la chose.

    De toutes façons, je vais bientôt tester QtJambi

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Bah SWT repose complètement sur le toolkit GTK+, donc forcément l'intégration doit poser moins de problèmes.

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