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

AWT/Swing Java Discussion :

Reduire le chargement d'une image ?


Sujet :

AWT/Swing Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 11
    Par défaut Reduire le chargement d'une image ?
    Pour un jeu je dois afficher pas mal d'image en meme temps donc j'ai créé une classe images qui a pour champ une Image et des coordonnées pour les affichés . Le constructeur prends en paramètre l'url de l'image est je recupere l'image avec toolkit .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public class Images implements Cloneable {
        private Coor coorim;
        private Image pict;
     
     
        /** Creates a new instance of Images */
        public Images(String url,Coor c) {
             pict=(Toolkit.getDefaultToolkit().getImage(url));
             coorim=c;
       } ...
    Ensuite j'ai redéfini le Paint de mon JPanel pour qu'il affiche mes images avec drawImage.

    Mon problème est que quand l'image est trop grande exemple image de 1024x768 l'image n'apparait pas tout de suite et laisse donc mon JPanel gris pendant une à deux seconde . J'aimerais supprimé ce temps de latence ...

    Existe il donc une methode pour charger une image plus rapidement ?
    Ou suis je obligé de faire un loading screen ... ?

  2. #2
    Membre Expert
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Par défaut
    Regarde du coté de la classe ImageIO


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 11
    Par défaut
    je pensais regarder justement cette classe merci
    Mais cela va t il régler mon probleme de maniere sur ?

  4. #4
    Gfx
    Gfx est déconnecté
    Expert confirmé
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Par défaut
    Oui car Toolkit démarrer un thread pour chager les images, contrairement à ImageIO.

  5. #5
    Membre chevronné Avatar de broumbroum
    Profil pro
    Inscrit en
    Août 2006
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 406
    Par défaut
    Pense encore à implémenter un "MediaTracker" pour un chargement important d'images. c.f. doc

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 11
    Par défaut
    Merci ImageIO marche tres bien !!!

    j'ai remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pict=(Toolkit.getDefaultToolkit().getImage(url));
    par
    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
    File file = new File(url);
        	FileImageInputStream fiis = null;
    		try {
    			fiis = new FileImageInputStream(file);
    		} catch (FileNotFoundException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
        	try {
    			pict=ImageIO.read(fiis);
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		};
    Une derniere question comment puis je inclure mes images comme une ressource pour y avoir acces directement depuis un jar ? Car je passe par une url et plus par string ??? (String) url marcherait il ?

  7. #7
    Gfx
    Gfx est déconnecté
    Expert confirmé
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Par défaut
    broumbroum : Le MediaTracker est inutile avec ImageIO.

    aurelien94 : ImageIO.read(UneClasseDeTonAppli.class.getResource("chemin/dans/le/jar"))

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Chargement d'une image avec evc4.0
    Par gids01 dans le forum MFC
    Réponses: 1
    Dernier message: 14/11/2005, 20h39
  2. Chargement d'une image
    Par gids01 dans le forum MFC
    Réponses: 1
    Dernier message: 31/10/2005, 14h27
  3. Réponses: 2
    Dernier message: 02/09/2005, 20h47
  4. Vitesse de chargement d'une image jpg ?
    Par ybruant dans le forum Langage
    Réponses: 6
    Dernier message: 16/11/2004, 20h42
  5. [debutant]Chargement d'une image de mes documents
    Par reineville dans le forum C++Builder
    Réponses: 5
    Dernier message: 23/03/2004, 09h52

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