Bonjour,
je voudrais afficher une image constituant le fond d'une JWindow.
Cette image est de type PNG avec le noir comme couleur transparente.
J'ai lu dans plusieurs posts que JAVA gère automatiquement la couleur transparente lorsqu'il s'agit d'image au format PNG.
Ben, dans mon cas, cela ne fonctionne pas
Voici quelques morceaux du code utilisé pour charger l'image depuis les ressources:Voici la partie du code qui affiche le logo après avoir fait une capture de l'écran se situant sous la zone d'affichage:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 try { imageLogo = ImageIO.read( getClass().getResource( "Plaque translucide 800x600.png" )); largeur = imageLogo.getWidth(); hauteur = imageLogo.getHeight(); this.setSize( new Dimension( largeur, hauteur )); this.setLocationRelativeTo( null ); } catch ( IOException ioE ) { ioE.printStackTrace(); }Et bien sûr l'affichage de la fenêtre JWindow:
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
16
17
18
19
20
21
22
23
24
25 public void afficheLogo() { BufferedImage imageCapture; Graphics2D g2D; Robot Automate; try { Automate = new Robot( getGraphicsConfiguration().getDevice() ); imageCapture = Automate.createScreenCapture( getBounds() ); imageTravail = null; // Au cas où cela se passe mal, il n'y aura rien à afficher imageTravail = new BufferedImage( largeur, hauteur, BufferedImage.TYPE_INT_ARGB ); g2D = (Graphics2D)imageTravail.getGraphics(); g2D.drawImage( imageCapture, null, 0, 0 ); g2D.drawImage( imageLogo, 0, 0, null ); this.setVisible( true ); } catch ( AWTException awtE ) { System.out.println( awtE.getMessage() ); } }Voila, ce code affiche la plaque rectangulaire du logo, avec la partie "noire" qui devrait en fait laisser passer les pixels de la capture écran. Où est le problème ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public void paint ( Graphics G ) { if ( imageTravail != null ) G.drawImage( imageTravail, 0, 0, null ); }
Merci et à bientôt...
Partager