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

Java ME Discussion :

Charger une portion d'image


Sujet :

Java ME

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 48
    Par défaut Charger une portion d'image
    Bonjour à tous,

    j'aimerai savoir quelle est la meilleure méthode pour charger une partie d'une image.
    La méthode que j'utilise actuellement est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    try 
    {
    Image img = Image.createImage("/Image1.gif");
    img=Image.createImage(img,0,0,150,150,0);
    }
    catch (IOException ioe)
    {
    System.out.println("Erreur au chargement de l'image");
    }
    Le problème, c'est qu'en faisant cela, quand je regarde dans l'émulateur, la consommation de RAM est plus importante dans ce cas-la, que quand je charge l'image entière. En gros, j'ai l'impression qu'avec mon code, je charge en mémoire l'image entière, plus la partie de l'image ...

    Quelqu'un aurait-il un méthode plus 'propre' et qui consomme moins de mémoire ?

    Merci d'avance

  2. #2
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    795
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 795
    Par défaut
    Après avoir créé t_img, tu peux libérer la mémoire occupée par img
    Le garbage collector libèrera la mémoire tout seul.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 48
    Par défaut
    Heu désolé en fait je me suis trompé dans mon post, ce n'est pas t_img, mais img...

    De toutes façons, j'ai tout de même essayé avec deux images, et ensuite mettre la première à null, mais la consommation de RAM reste identique ...

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 88
    Par défaut
    Si tu veux, tu peux toujours appeler explicitement le garbage collector... Mais à mon avis ce n'est pas la solution propre.

    De toute façon tu es obligé de charger ton image entièrement. Le mieux est alors de contrôler à l'affichage ce que tu affiches, grâce à un Graphics.setClip(0, 0, 150, 150). Comme ça, tu évites de créer une deuxième image à partir de la première : économie de mémoire et de cycles.

  5. #5
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    795
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 795
    Par défaut
    Sinon tu pourrais créer une autre image de la taille que tu veux. Tu récupères son Graphic et tu peins la première image(complète) dans la nouvelle image qui elle est de la taille désirée. Et tu peux supprimer la première image pour libérer la mémoire. Mais je ne sais pas si ca sera plus efficace au niveau de la consommation mémoire ni même niveau temps d'exécution....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    try 
    {
    <div style="margin-left:40px">
    Image img = Image.createImage("/Image1.gif");
    Image i = Image.createImage(50, 50);
    Graphics g = i.getGraphics();
    g.drawImage(img , 0, 0, 0);
    img = null;</div>}
    catch (IOException ioe)
    {
    <div style="margin-left:40px">System.out.println("Erreur au chargement de l'image");</div>}

Discussions similaires

  1. Dessiner une portion d'image dans une autre image
    Par Harry_polin dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 24/11/2009, 13h19
  2. [C#][GDI+]Capture d'une portion d'image
    Par WOLO Laurent dans le forum Windows Forms
    Réponses: 1
    Dernier message: 22/11/2007, 08h29
  3. [Java2D]Dessiner une portion d'image
    Par Guybrush dans le forum 2D
    Réponses: 4
    Dernier message: 27/03/2007, 22h58
  4. [winform][dotnet] afficher une portion d'image zoomée
    Par maxdwarf dans le forum Windows Forms
    Réponses: 1
    Dernier message: 01/02/2007, 17h13
  5. Réponses: 4
    Dernier message: 14/10/2003, 08h58

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