Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problèmes d'images

chemins relatifs

Sujet résolu
    5 juillet 2008 à 19:01:36

    Bonjour. :)

    Je développe un MMORPG(jeu en ligne), et il m'est arrivé d'avoir à utiliser des chemins relatifs. Bien sûr, j'ai commencé par le serveur, et je n'ai pas eu besoin de mettre un chemin relatif pour mes fichiers. Mais quand je veux afficher une image (par exemple pour la map de jeu), elle ne s'affiche pas. Il n'y a aucune erreur, et l'image apparaît dans le menu de gauche (sous Eclipse).

    Voici mon code :
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    
    public class test_image
    {
    	public static void main(String[] args)
        {
        Fenetre fenetre = new Fenetre();
        fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        fenetre.show();
        fenetre.setSize(400,400);
        }
    }
    
    class Fenetre extends JFrame
    {
    	public Fenetre()
    	{
    		AffichageImage image = new AffichageImage("general.png");
    	    add(image);
    	}
    }
    
    class AffichageImage extends Canvas
    {
    	Image image;
    	public AffichageImage(String url)
    	{
    	    image = getToolkit().getImage(url);
    	    prepareImage(image, this);
    	}
    
    	public void paint(Graphics g)
        {
        g.drawImage(image, 0, 0, this);
        g.setColor(Color.BLACK);
        }
    }
    


    Aucun problème avec les chemins absolus (l'image s'affiche), mais avec les relatifs, l'image ne s'affiche pas.

    Comment faire pour que l'image s'affiche dans mon programme ?

    Merci d'avance.

    Ca y est, j'ai trouvé. Il fallait que je fasse un jar. Maintenant, tout baigne :-° !
    • Partager sur Facebook
    • Partager sur Twitter
      6 juillet 2008 à 16:04:44

      signale alors que ton problème est résolu ;)
      • Partager sur Facebook
      • Partager sur Twitter
        6 juillet 2008 à 17:55:53

        public void paint(Graphics g)
            {
            g.drawImage(image, 0, 0, this);
            g.setColor(Color.BLACK);
            }
        


        Niveau économie de ressources, ne serait-il pas plus raisonnable de spécifier la couleur avant de dessiner?

        public void paint(Graphics g)
            {
            g.setColor(Color.BLACK);
            g.drawImage(image, 0, 0, this);
            }
        
        • Partager sur Facebook
        • Partager sur Twitter
          7 juillet 2008 à 8:09:58

          Bonjour, moi je fonctionne comme ci-dessous , mais j'utilise des gif, à voir si cela fonctionne avec des png.

          // declaration de l'image
          Image image1;
          
          // chargement de l'image
          image1 = getImage(getCodeBase(),"repertoire/general.png");
          
          // affichage de l'image
          g.drawImage(image1,0,0,321,208,this);
          
          • Partager sur Facebook
          • Partager sur Twitter
            7 juillet 2008 à 13:09:51

            Citation : kayzra

            public void paint(Graphics g)
                {
                g.drawImage(image, 0, 0, this);
                g.setColor(Color.BLACK);
                }
            



            Niveau économie de ressources, ne serait-il pas plus raisonnable de spécifier la couleur avant de dessiner?

            public void paint(Graphics g)
                {
                g.setColor(Color.BLACK);
                g.drawImage(image, 0, 0, this);
                }
            


            en quoi ca economise des ressources ?
            • Partager sur Facebook
            • Partager sur Twitter
              7 juillet 2008 à 20:59:56

              Citation :

              en quoi ca economise des ressources ?


              En lançant le code :

              1- la JVM dessine avec la couleur par défaut et ensuite repeint avec une autre couleur:
              public void paint(Graphics g)
                  {
                  g.drawImage(image, 0, 0, this);
                  g.setColor(Color.BLACK);
                  }
              


              2- la couleur est définie en 1er et elle dessine directement avec celle-ci:

              public void paint(Graphics g)
                  {
                  g.setColor(Color.BLACK);
                  g.drawImage(image, 0, 0, this);
                  }
              


              Il y a des opération en moins, pour moi, il y a donc économie de ressources... De plus il y a un "?" à la fin de ma remarque, ce qui signifie que je ne fonde mon observation sur aucune ressources mais juste sur une question de logique, en gros c'est juste une réflexion personnelle mais qui pourrait avoir de l'importance sur une grosse interface graphique où l'ergonomie du codage est essentiel afin d'avoir une interface réactive! :p

              • Partager sur Facebook
              • Partager sur Twitter
                8 juillet 2008 à 2:25:11

                je suis pas d'accord
                j'ai aps teste mais

                g.setColor(Color.BLACK);

                fixe une couleur, la couleur qu'il va utiliser pour dessiner ... l'image est cependant independante du graphics (qui la joue juste le role d'un conteneur)

                enfin je verifierais demain si 'joublis pas
                • Partager sur Facebook
                • Partager sur Twitter

                Problèmes d'images

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown