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 :

Probleme de VolatileImage


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 20
    Par défaut Probleme de VolatileImage
    Bonjour a tous. Je m'excuse par avance pour la non presence d'accent dans mon post, mais, je suis actuellement en Angleterre, et le clavier QWERTY ne comporte pas de tels caracteres.

    Je suis actuellement en train de developper un logiciel permettant de lire des donnees issus de fichiers satellites. ces fichiers sont tres lourd (~500Mo le fichier) et contiennent des images de grande resolution : 1121x14875. actuellement, la lecture du fichier ne pause aucun probleme, mais, en revenche, l'affichage en comprend bon nombre. Entre autre, les actions de zoom in/out et les deplacement sur l'image oppose des probleme de ressources important, faisant ramer enormement l'ordinateur. C'est ici aue les volatileImages entre en jeu : Grce a l'acceleration graphique, les zoom et differents scrolls deviennent tres rapide. Seulement, je me heurte maintenant a un probleme insoluble :
    les VolatileImages contiennent des informations fausses, lorsqu'elles depassent 1121x4000.

    Y a-t-il une solution ? Si oui laquelle ?

    Merci d'avance pour vos reponses.

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Avant d'utiliser des VolatileImage as tu essayé de rendre compatibles tes images avec le hardware:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    public static BufferedImage loadCompatibleImage(URL resource) throws IOException {
        BufferedImage image = ImageIO.read(resource);
        GraphicsConfiguration configuration = GraphicsEnvironment.
          getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration();
        BufferedImage compatibleImage = configuration.createCompatibleImage(image.getWidth(),
                                                                            image.getHeight());
        Graphics g = compatibleImage.getGraphics();
        g.drawImage(image, 0, 0, null);
        g.dispose();
        return compatibleImage;
      }
    (code tiré de la classe GraphicUtilities de Gfx, classe intégrée à SwingX)

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 20
    Par défaut
    Non, je n'avais pas essayer, mais, il semblerais que le resultat de cette operation soit le resultat escompte. Merci infiniment pour m'avoir sortis de ce petrin.

    Puis-je tout de meme te demander ce aue font ces quelques lignes ?

  4. #4
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    En fait ces lignes de code commencent par créer une image vide compatible avec ton hardware (toute modif sur cette image sera accélérée matériellement). Puis on dessine le contenu de l'image à afficher dans l'image compatible. De cette façon on est sûr que l'image que l'on manipulera par la suite bénéficiera de l'accélération Hardware.

  5. #5
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 20
    Par défaut
    Alors, quel est l'interet d'utiliser des VolatileImage, puisque l'on peut accelerer les BufferedImge ? Les VolatileImage ont-elle quand meme un avantage aui compense leur gros default qu'est celui de disparaitre ?

  6. #6
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Pour les VolatileImage le cas est un peu différetn vu qu'elle sont directement stockées dans la ram de la carte graphiquek, c'est plus rapide mais plus dangereux. Au contraire les BufferedImage compatibles sont toujours stockées en mémoire normale, elles sont juste "compatibles" avec les specs de la carte graphique.

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

Discussions similaires

  1. Probleme de rafraichissement d'un BDGrid
    Par marmotte dans le forum Bases de données
    Réponses: 10
    Dernier message: 28/05/2004, 18h07
  2. Réponses: 2
    Dernier message: 30/05/2002, 08h54
  3. Probleme sur les chaines de caractere
    Par scorpiwolf dans le forum C
    Réponses: 8
    Dernier message: 06/05/2002, 19h01
  4. [Kylix] Probleme d'execution de programmes...
    Par yopziggy dans le forum EDI
    Réponses: 19
    Dernier message: 03/05/2002, 14h50
  5. [Kylix] Probleme de nombre flottant!!
    Par yopziggy dans le forum EDI
    Réponses: 5
    Dernier message: 02/05/2002, 10h13

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