Bonjour,
pour apprendre le Java je veux faire un mini jeu ( j'essaye )
je voudrais utiliser des images,

je compte donc faire une methode qui va me retourner un tableau d'image
( un bonome, un chien par exemple ) mais avant de retourner le tableau d'image, je voudrais les redimensionner.
donc la methode
Image [] getImage(maxwidth,MaxHeight)
ressemblera a ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
public java.awt.Image[]getImage(int maxwidth,int MaxHeight)
    {
	    java.awt.Toolkit tk=java.awt.Toolkit.getDefaultToolkit();
	    String []chemin={"c:\\1.jpg","c:\\2.jpg"};
	    java.awt.Image []MyImage=new java.awt.Image[2];
            //1) chargement des images dans une "case" du tableau
	    for(int i=0;i<chemin.length;i++)
	    {
	    MyImage[i]=tk.getImage(chemin[i]);
	    }
	    //2) Redimensionnement des images en fonction des parametres
	    return MyImage;
    }
( code que j'ai fait en redigeant ce topic et en me basant sur la FAQ, donc il peut y avoir des erreurs , mais c'est juste pour le visuel, et avoir qqch de concret )

et la ou je blocke c'est a l'etape 2 ( "fusionner" le code precedent avec le suivant ->), dans la FAQ je vois ceci
( pour avoir tous les elements dans ce topic, je copi/colle integralement )
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
 
/** Effectue une homothétie de l'image.
 * 
 * @param bi l'image.
 * @param scaleValue la valeur de l'homothétie.
 * @return une image réduite ou agrandie.
 * 
 */public static BufferedImage scale(BufferedImage bi, double scaleValue) {
        AffineTransform tx = new AffineTransform();
        tx.scale(scaleValue, scaleValue);
        AffineTransformOp op = new AffineTransformOp(tx,
                AffineTransformOp.TYPE_BILINEAR);
        BufferedImage biNew = new BufferedImage( (int) (bi.getWidth() * scaleValue),
                (int) (bi.getHeight() * scaleValue),
                bi.getType());
        return op.filter(bi, biNew);
 
}
1)quel est la difference entre une BufferedImage et une Image ?
2)puis-je dessiner une BufferedImage directement sur mon JPanel ou dois-je la convertir en Image ?
3)si je peux ecrire directement une BufferedImage sur mon JPanel alors quel est la meilleur maniere de proceder ?

ensuite dans la FAQ j'ai aussi vue ça :
Si vous ne faites pas de dispose() sur le contexte graphique et que vous rafraichissiez beaucoup celui-ci durant l'utilisation du programme, votre programme sera de plus en plus gourmant en mémoire.
4)la question que je me pose c'est a quel moment je dois faire un "dispose()"?
5)que se passe t'il quand je le fais ?

je me rend bien compte que ça fait beaucoup de question, desolée
merci a ceux qui auront le courage