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:
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:
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