Transparence d'une image

Résolu
Sara426 Messages postés 678 Date d'inscription   Statut Membre Dernière intervention   -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Je suis en train de programmer un mini jeu.
J'ai une image de fond avec de l'herbe avec un personnage dessus.
Ce que j'aimerais faire c'est griser la case, ou juste l'assombrir.
Est-ce que quelqu'un sait faire ?

Cordialement,
Sara.

A voir également:

1 réponse

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
"griser la case, ou juste l'assombrir"
Au début tu parlais de transparence d'images qui se superposait donc j'arrivais à suivre, mais là tu parles de "case" et je ne vois pas de quoi tu parles... Un exemple de code serait le bienvenu !
0
Sara426 Messages postés 678 Date d'inscription   Statut Membre Dernière intervention   63
 
Mon jeu est représenté sous forme d'une grille.
Chaque personnage est dans une case.
Et je voudrais griser cette case lorsque le personnage a joué.

Je parlais de transparence parce que je voulais justement dessiner un rectangle rouge ou gris par dessus cette case, mais que le rectangle ne soit pas totalement rempli, juste assez pour qu'on puisse voir le personnage par dessous.

Est-ce que tu comprends ce que je veux dire ?
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Si tu as compris le principe de superposition des images, il te suffit de superposer encore une autre image mais cette-fois ci avec ton rectangle partiellement transparent...
0
Sara426 Messages postés 678 Date d'inscription   Statut Membre Dernière intervention   63
 
Justement je sais comment dessiner deux rectangles l'un au-dessus de l'autre, mais je sais pas comment le rendre partiellement transparent.
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Tu peux aussi dessiner des images l'une au dessus de l'autre, donc avec un éditeur d'image tu fais des images transparentes, et tu les superposes les unes au dessus des autres...

public class Test
{
    public static void main(String[] args)
    {
        JPanel panel = new JPanel()
        {
            private static final long serialVersionUID = 1;
            
            private final Image img1 = new ImageIcon("C:/vert.png").getImage();
            private final Image img2 = new ImageIcon("C:/gus.png").getImage();
            private final Image img3 = new ImageIcon("C:/rouge.png").getImage();
                            
            public void paint(Graphics g) 
            {
                super.paint(g);
                g.drawImage(img1, 0, 0, null, null);
                g.drawImage(img2, 0, 0, null, null);
                g.drawImage(img3, 0, 0, null, null);
            }
        };
        
        JFrame frame = new JFrame();
        frame.add(panel);
        frame.setSize(150,150);        
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}

Si tu veux tester comme moi, j'ai mis les 3 images en lignes : images.zip
0