IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Applets Java Discussion :

Problème lors du chargement d'une image gif


Sujet :

Applets Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 65
    Points : 20
    Points
    20
    Par défaut Problème lors du chargement d'une image gif
    Bonjour,

    J'ai le problème suivant: je souhaite afficher une image gif (qui se trouve sur internet, par ex: http://www.acmuseum.com/portfolio/Alinghi.gif) dans mon applet.

    -J'ai donc créer une variable Image image;
    -Dans le 'init' j'ai charger l'image:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Toolkit tk = Toolkit.getDefaultToolkit();
            image=tk.getImage("http://www.acmuseum.com/portfolio/Alinghi.gif");
    -et finalement dans la méthode 'paint', j'ai dessiner l'image:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    g.drawImage(image,100,100,this);
    Mais l'image ne s'affiche pas...

    Merci d'avance,

    Pat-trix

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 65
    Points : 20
    Points
    20
    Par défaut
    hum... enfait je crois que c'est une histoire d'autorisation (droit d'auteur); la page internet de l'applet n'arrive pas à se charger...^^

    Comment pourrais-je modifier mon code pour ouvrir une image alors enregistrée sur mon disque? (et où enregister mon image pour que mon programme la trouve et puisse la charger !!)

    Merci beaucoup!

    Pat-trix

  3. #3
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Déjà il y a ça, mais utilise aussi ImageIO.read(...) et non Toolkit.getDefaultToolkit().getImage(...)...

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 65
    Points : 20
    Points
    20
    Par défaut
    Ok!
    Mais voilà ce que j'ai écrit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        URL url = new URL("http://www.hebig.org/blogs/archives/main/team_nz_mast.jpg");
     
     
            image=ImageIO.read(url);
    Mais le code n'est pas accepté...

    Merci encore,
    Sincèrement

    Pat-trix

  5. #5
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Citation Envoyé par pat-trix
    Ok!
    Mais voilà ce que j'ai écrit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        URL url = new URL("http://www.hebig.org/blogs/archives/main/team_nz_mast.jpg");
     
     
            image=ImageIO.read(url);
    Mais le code n'est pas accepté...

    Merci encore,
    Sincèrement

    Pat-trix
    Quel est le problème à la compilation?

  6. #6
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    En effet, si tu utilises Toolkit, l'image est chargee de maniere asynchrone et peut mettre du temps a arriver. Donc il te faut utiliser le mecanisme de l'ImageObserver pour reafficher quand elle est completement chargee. Ou alors passer par un MediaTracker.

    Avec ImageIO ou ImageIcon, le chargement est synchrone (et donc bloquant) tant que l'image n'est pas completement chargee.

    Maintenant il serait bon de savoir quelle erreur tu rencontres. Es-tu sur que ton URL est correcte et l'image accessible depuis ton poste (pas d'intercepteur de telechargement sur le reseau de l'entreprise par exemple ?).
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 65
    Points : 20
    Points
    20
    Par défaut
    Hey!

    enfait c'était le 'new' qui était souliné: "exception de MalformedURLException non reportée"...

    DOnc j'ai rajouté un try{ ...} et un catch(MalformedURLException e) {} ainsi qu'un catch(IOException e){} et ça marche!

    J'ai même encore essayé une autre méthode:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    URL url =this.getDocumentBase();
            try{
                String adresse = "http://www.menton.com/photos/americascup/alinghi.jpg";
                //adresse 1 :http://www.menton.com/photos/americascup/alinghi.jpg
                //adresse 2 :"http://www.hebig.org/blogs/archives/main/team_nz_mast.jpg"
                URL u1 = new URL(adresse);
                f1= getImage(u1);
            }
            catch (MalformedURLException e){}
    Mais encore une question: comment faire si je veux charger une image qui se trouve sur mon disque et non pas sur internet? Et où l'enregister sur mon disque?!

    Merci d'avance!
    Sincèrement,

    Pat-trix

  8. #8
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Citation Envoyé par pat-trix
    Mais encore une question: comment faire si je veux charger une image qui se trouve sur mon disque et non pas sur internet? Et où l'enregister sur mon disque?!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new File("tonfichier.txt").toURI().toURL();

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 65
    Points : 20
    Points
    20
    Par défaut
    Merci pour le code.

    Mais dans quelle variable est stockée l'image?, et la partie ".toURL" est incorecte: "types incompatible trouvés"...

    Merci d'avance

    Pat-trix

  10. #10
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Citation Envoyé par pat-trix
    Merci pour le code.

    Mais dans quelle variable est stockée l'image?
    Bah, tu affectes ça à une variable à toi...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    URL urlDeTonFichier = new File("tonfichier.txt").toURI().toURL();
    Image image = ImageIO.read(urlDeTonFichier);
    Citation Envoyé par pat-trix
    et la partie ".toURL" est incorecte: "types incompatible trouvés"...
    Qu'est-ce qui te dit ça? Le compilateur ou c'est à l'exécution?[/QUOTE]

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 65
    Points : 20
    Points
    20
    Par défaut
    C'étai le compilateur qui soulignait la faute... mais maintenant avec ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    try{
           URL monfile = new File ("PhotoTM.jpg").toURI().toURL();
           f1=ImageIO.read(monfile);
           }
           catch (MalformedURLException e){}
           catch (IOException e){}
    l'image ne s'affiche pas... et l'applet se liasse compiler mais il y a une erreur "pump event" lorsqu'elle est ouverte...alors est ce que l'image est peut-être enregistrée au mauvais endroit?

    Merci

    Pat-trix

  12. #12
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    Attention la rien n'est enregistre, ils s'agit de lecture de l'image (sur le net, sur le disque) et de mises en memoire. Il te faudra utiliser ImageIO.write() pour ecrire l'image sur le disque.

    Le chemin vers l'image est-il correct ?

    EDIT - s'il s'agit d'une Applet il te faut charger l'image a partir de son serveur dont tu peux obtenir d'adress via getCodeBase() il me semble.

    Regle generale : quand une methode lance des exceptions (qui ne sont pas des RuntimeException - voir doc de la methode et de l'exception, voir les erreurs generees par le compilateur), il faut soit :
    - utiliser un bloc try{} catch{} ou try{} catch{} finally {} pour gerer l'exception.
    - declarer que cette exception peut-etre lancee dans la signature de la methode contenant ce code. On peut utiliser un bloc try{} finally {} pour s'assurer qu'une partie du code est toujours executee meme en cas de lancement de l'exception.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 65
    Points : 20
    Points
    20
    Par défaut
    ok!
    Alors en chargeant une image d'une URL, lorsque je compile depuis JBuilder l'applet s'ouvre et l'image s'affiche sans aucuns problèmes.
    Maintenant, quand j'héberge l'applet sur le web, l'applet ne s'ouvre pas et quand on ouvre la console JAVA, voici le message qui s'affiche:
    (http://gycham.educanet2.ch/tm2006jav...au/bateau.html)

    java.security.AccessControlException: access denied (java.net.SocketPermission www.hebig.org:80 connect,resolve)
    at java.security.AccessControlContext.checkPermission(Unknown Source)
    at java.security.AccessController.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkConnect(Unknown Source)
    at sun.net.www.http.HttpClient.openServer(Unknown Source)
    at sun.net.www.http.HttpClient.<init>(Unknown Source)
    at sun.net.www.http.HttpClient.New(Unknown Source)
    at sun.net.www.http.HttpClient.New(Unknown Source)
    at sun.net.http://www.protocol.http.HttpURLConn...Client(Unknown Source)
    at sun.net.http://www.protocol.http.HttpURLConn...onnect(Unknown Source)
    at sun.net.http://www.protocol.http.HttpURLConn...onnect(Unknown Source)
    at sun.net.http://www.protocol.http.HttpURLConn...Stream(Unknown Source)
    at sun.plugin.net.protocol.http.HttpUtils.followRedirects(Unknown Source)
    at sun.plugin.cache.CachedFileLoader.download(Unknown Source)
    at sun.plugin.cache.CachedFileLoader.load(Unknown Source)
    at sun.plugin.cache.FileCache.get(Unknown Source)
    at sun.plugin.cache.PluginCacheHandler.get(Unknown Source)
    at sun.net.http://www.protocol.http.HttpURLConn...onnect(Unknown Source)
    at sun.net.http://www.protocol.http.HttpURLConn...onnect(Unknown Source)
    at sun.net.http://www.protocol.http.HttpURLConn...Stream(Unknown Source)
    at java.net.URL.openStream(Unknown Source)
    at javax.imageio.ImageIO.read(Unknown Source)
    at bateau.bateau.init(bateau.java:390)
    at sun.applet.AppletPanel.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

    Merci d'avance

    Pat-trix

  14. #14
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par pat-trix
    voici le message qui s'affiche:
    (http://gycham.educanet2.ch/tm2006jav...au/bateau.html)

    java.security.AccessControlException: access denied (java.net.SocketPermission www.hebig.org:80 connect,resolve)
    at java.security.AccessControlContext.checkPermission(Unknown Source)
    Le message est pourtant clair : tu n'as pas les droits d'accéder au fichier...

    Comme cela t'a été signalé, si ton applet n'est pas signé tu ne peux pas télécharger des fichiers depuis d'autres emplacements...

    a++

    PS : je déplace dans le forum Applet plus approprié...

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 65
    Points : 20
    Points
    20
    Par défaut
    Mais alors commetn afficher une image sur une applet ??!

    Merci

    Pat-trix

  16. #16
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par pat-trix
    Mais alors commetn afficher une image sur une applet ??!
    Plusieurs solutions :
    • Utiliser une applet signé (plusieurs sujets sur le forum).
    • Utiliser une image sur le même serveur et sous le même chemin de base.

    a++

Discussions similaires

  1. Problème lors du telechargement d'une image
    Par kstou2001 dans le forum Langage
    Réponses: 1
    Dernier message: 05/02/2012, 16h31
  2. Problème lors du chargement d'une vidéo avec wx.media
    Par Matthyeux dans le forum wxPython
    Réponses: 0
    Dernier message: 21/07/2011, 22h24
  3. Erreur TileNotCached lors du chargement d'une image avec WMS-C
    Par Hadrien29 dans le forum IGN API Géoportail
    Réponses: 2
    Dernier message: 22/06/2010, 11h25
  4. Gestion d'erreur lors de chargement d'une image dans une useforme
    Par mentat dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/08/2009, 14h23
  5. problème lors de chargement d'une nouvelle fenetre
    Par Sfaxiano dans le forum Windows Forms
    Réponses: 17
    Dernier message: 24/07/2009, 15h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo