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 :

[AWT] BufferedImage reference et valeur


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Décembre 2005
    Messages
    251
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 251
    Par défaut [AWT] BufferedImage reference et valeur
    Bonjour,

    Je voudrai savoir si la méthode getSubImage renvoie un nouveau BufferedImage indépendant où s'il n'y a que la réference qui change et que les valeurs sont rattachées avec les valeurs du bufferedImage d'origine.

    Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    BufferedImage copie = MonbufferedImage.getSubImage(0,0,
    	MonbufferedImage.getWidth(),MonbufferedImage.getHeight() );
    copie.getRGB(23,43,1234);
    Est ce que cela affectera MonbufferedImage ?

    Merci d'avance

  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
    getSubImage renvoie une nouvelle BufferedImage, mais celle ci par contre partage les datas avec image de base, donc objet distinc, mais les données dernières sont partagées.

  3. #3
    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
    Une autre approche, que je préfère pour diverses raisons, consiste à créer une nouvelle BufferedImage de la bonne taille, récupérer son Graphics, et dessiner l'image d'origine dedans.

  4. #4
    Membre éclairé
    Inscrit en
    Décembre 2005
    Messages
    251
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 251
    Par défaut
    Si je redéfinie la méthode clone de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public MonBufferedImage clone() throws CloneNotSupportedException
    {
        MonBufferedImage cloned = super.clone();
        cloned.setRGB(0,0,cloned.getWight(),cloned.getHeight(),
                  super.getRGB(.....),....);
    }
    est ce que cela ou quelque chose de similaire fera une copie integrale ?
    est ce plus performante que de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    BufferedImage cloned = new BufferedImage(origine.getWidth(), origine.getHeight(),
    BufferedImage.TYPE_RGB);
     
    Graphics g = cloned.getGraphics();
    g.drawImage(origine, 0, 0, null);
    g.dispose();
    Merci

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

Discussions similaires

  1. Passage de valeur par reference
    Par psmpa dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 05/03/2009, 16h22
  2. Référence par valeur
    Par Eva71 dans le forum IHM
    Réponses: 19
    Dernier message: 03/08/2007, 14h36
  3. Réponses: 9
    Dernier message: 26/07/2007, 16h35
  4. [AWT] créer une simple BufferedImage
    Par anthyme dans le forum 2D
    Réponses: 1
    Dernier message: 21/06/2007, 16h07
  5. [XSLT] comparaison a des valeurs de references
    Par RenaultPat dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 26/07/2006, 13h12

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