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

Langage Java Discussion :

enregistrer plusieur BufferedImages


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Par défaut enregistrer plusieur BufferedImages
    salut.
    je doit enregistrer des objets BufferedImage dans un objet Vector .
    donc combien d'image peuvent être insérer pour ne pas arriver a surcharger la mémoire .
    je sais que la taille max d'un vecteur dépend de MaxInt en java mais je suppose qu'on risque de surcharger la mémoire dans mon cas pour une valeur taille avec taille <<<<<<<<<< MaxInt.

    je suppose que quelqu'un de vous me proposeait d'enregistrer mes images dans un fichier objet et si c'etait le cas , alors est ce que je doit créer une classe qui hérite de BufferedImage pour faire implements Serializable ?

    je cherche toujours la solution optimale alors merci pour vos propositions

  2. #2
    Membre Expert
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Par défaut
    mais ou sont les expert ?

    d'accord ,en attendant qu'ils arrivent ,j'ai enregistrer mes images dans des fichiers ,et sa marche bien .
    pour le moment ,j'ai un fichier par image ,et bien sur c'est un gaspillage ,donc ,peut-on enregistrer tous mes images dans un seul fichier ?

  3. #3
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    pour sauver des images, le pus "propre" c'est encore d'utiliser les api dans imageio et stocker ca sour forme de png ou de jpeg. Serializer un bufferedImage n'est pas un bon plan, tu va occuper plus de place sur le disque que nécessaire, sans compter que rien ne garantit que la serialization n'aura pas de soucis.

    Pour ce qui est de stocker les bufferedImage en mémoire, ben assez logiquement ta limite est celle de la mémoire, occupée principalement par le bufferedimage. La taille des bufferedimage étant un peu supérieure à largeurxhauteurxtaille en mémoire d'un pixel

  4. #4
    Membre Expert
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Par défaut
    ben ,voila enfin un expert active qui m'enrichi avec son expérience .merci tchize

    Citation Envoyé par tchize_ Voir le message
    pour sauver des images, le pus "propre" c'est encore d'utiliser les api dans imageio et stocker ca sour forme de png ou de jpeg.
    je suis tout a fait d'accord et je suppose que tu te souvient de mon interpolation de mouvement que je veut faire , donc si j'adopte ta solution , je dois enregistrer un fichier image a chaque réveille de mon thread ,et cela va influer sur le déroulement de l'animation à l'écran . c'est pourquoi je trouve que le fait d'enregistrer un objet pourra être plus rapide ( plus synchrone avec l'animation) que générer un fichier image .

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    je pense plutot que écrire un fichier png sera plus performant que sérializer un objet. La serialisation d'objets complexes est loin d'être une chose très performante. Elle entraine beaucoup de reflexion

  6. #6
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    J'arrive un peu tard sur cette discussion, mais je cherchais autres choses.

    Pour compléter la réponse de tchize_, s'il n'est pas nécessaire d'avoir tous les éléments en mémoire, il faut tenter au maximum de les mettre sur le disque quand on ne risque pas d'en avoir besoin (via un File#createTempFile et un ImageIO par exemple).
    En effet, les BufferedImage peuvent vite plomber la mémoire.

    Par exemple pour un système d'historique de modification (si cela peut s'appliquer pour tout cas), en général, plus l'image est ajoutée récemment, plus la probabilité qu'on ait à s'en servir est importante (cela correspond à une pile). Cela permet par exemple de faire un système de cache qui enregistre systématiquement les images trop vieilles sur le disque.

    Quand j'ai mis en place ce système sur mon logiciel, je suis passé de 400mo de mémoire utilisé à 100mo.

Discussions similaires

  1. Réponses: 13
    Dernier message: 23/10/2007, 10h03
  2. Comment ne pas enregistrer plusieurs fois une touche ?
    Par Jordinateur dans le forum SDL
    Réponses: 33
    Dernier message: 05/10/2007, 21h44
  3. Réponses: 2
    Dernier message: 22/09/2007, 15h37
  4. Réponses: 9
    Dernier message: 25/07/2007, 21h24
  5. [Dates] Enregistrer plusieurs dates
    Par bfabrice dans le forum Langage
    Réponses: 7
    Dernier message: 17/05/2006, 10h57

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