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 :

"new BufferedImage" d'une image trop grande


Sujet :

AWT/Swing Java

  1. #1
    Modérateur

    Inscrit en
    Octobre 2006
    Messages
    1 649
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 649
    Points : 2 529
    Points
    2 529
    Billets dans le blog
    6
    Par défaut "new BufferedImage" d'une image trop grande
    Bonjour,

    J'utilise la classe "BufferedImage" pour créer des images.
    Or, parfois, je tente de créer une image trop grande par rapport à la mémoire disponible pour Java.

    Mon problème, c'est que je n'arrive pas à savoir quand l'image est trop grande, car je ne catch pas d'exception.


    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    try {
    	            BufferedImage test = new BufferedImage(
                            3000,
                            3000,
                            BufferedImage.TYPE_INT_RGB );
     
    	            } catch (Exception e)
    	            {
    	            	e.printStackTrace();
    	            }
    L'exécution de ce code avec peu de mémoire pour la JVM ne me retournera pas d'erreur, pas d'exception, ... rien.
    Mon code n'avancera plus, et je n'ai aucun moyen de le savoir.


    Ce que je souhaiterais, c'est pouvoir afficher un message du genre "pas assez de mémoire, augmentez la mémoire de votre JVM ou utilisez une image plus petite".

    Avez-vous une idée de comment je peux faire pour éviter que mon programme se perde ?


    Merci d'avance...

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Pour faire simple, si tu dépasses l'espace mémoire disponible tu auras ça: http://docs.oracle.com/javase/7/docs...moryError.html

    C'est une Error, pas une Exception. Donc si tu as vraiment besoin de la catcher et faut faire un catch explicite dessus. Le catch (Exception e) ne marchera pas.
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  3. #3
    Modérateur

    Inscrit en
    Octobre 2006
    Messages
    1 649
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 649
    Points : 2 529
    Points
    2 529
    Billets dans le blog
    6
    Par défaut
    Code transformé en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    try {
    	            BufferedImage test = new BufferedImage(
                            3000,
                            3000,
                            BufferedImage.TYPE_INT_RGB );
     
    	            } catch (Throwable t)
    	            {
     
    	            	System.out.println(t.toString());
    	            }
    et tout marche comme je veux.


    Merci pour cette réponse rapide !

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

Discussions similaires

  1. VB erreur d'ouverture d'une image trop grande
    Par syldudu dans le forum Access
    Réponses: 2
    Dernier message: 04/01/2008, 16h18
  2. Réponses: 23
    Dernier message: 05/09/2007, 11h53
  3. Faire glisser une image trop grande avec la souris
    Par avogadro dans le forum Général JavaScript
    Réponses: 25
    Dernier message: 28/07/2006, 16h50
  4. Réponses: 6
    Dernier message: 30/09/2004, 12h21

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