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

3D Java Discussion :

[Java3D] Récuperer une image à partir d'un canvas3D


Sujet :

3D Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 169
    Points : 113
    Points
    113
    Par défaut [Java3D] Récuperer une image à partir d'un canvas3D
    Bonjour !

    J'ai un problème dans mon application en java3D.
    J'ai un canvas3D, duquel j'aimerais récuperer une image 2D. Pas le canvas en entier, mais uniquement un petit cadre.
    Merci de m'aider si vous savez.

    Laurent

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 169
    Points : 113
    Points
    113
    Par défaut
    J'ai essayé ça que j'ai trouvé dans la FAQ :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public Image getImage(Component component){
       if(component==null){return null;}
       int width = component.getWidth();
       int height = component.getHeight();
       BufferedImage image = new BufferedImage(width, height, 
                                                 BufferedImage.TYPE_INT_RGB);
       Graphics2D g = image.createGraphics();
       component.paintAll(g);
       g.dispose();
       return image;
    }
    mais j'obtient une image blanche ...

  3. #3
    Membre régulier
    Inscrit en
    Décembre 2005
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 117
    Points : 109
    Points
    109
    Par défaut
    Il y a bien 2 solution:

    Faire une capture directement avec le Robot de awt, juste sur la zone que tu veux prendre.

    Seconde solution, un poil plus complexe... C'est d'éffectuer un rendu OffScreen donc hors écran. Avec ça tu pourras directement effectuer un rendu dans une image de la taille que tu souhaites (selon la mémoire video dispo pour la 3D et générale pour l'image, attention au Heap size qui peut se changer mais qui par défaut a un maxi de 64M)

    J'éspère que ça t'aide ... un peu tardivement certes mais bon, comme on dit, mieux vaut tard que jamais

  4. #4
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 816
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 816
    Points : 7 648
    Points
    7 648
    Par défaut
    Ouh, c'est vrai qu'on est un peu à la bourre là...

    Une petite info, au cas où ça servirait... je n'utilise pas Java3D... enfin, je n'utilise plus Java3D, je suis passé à Jogl, j'espère que le phénomène est commun aux deux API.

    Il faut faire attention quand tu veux récupérer ton image, il y a un décalage entre le moment où tu appelles le rafraichissement de l'image et le moment où elle est réellement rafraichie (si je ne m'abuse, il y a un thread séparé pour la gestion de l'IHM). La méthode que j'utilise est d'utiliser un booléen pour indiquer que je souhaite récupérer l'image, et je gère la récupération de l'image dans la fonction display() de mon canvas3D (via le booléen). Ainsi, tu récupères l'image quand le canvas est vraiment mis à jour, et tu ne finis pas avec l'image blanche... ou noire...

Discussions similaires

  1. réafficher une image à partir des données recupérées
    Par vbcasimir dans le forum Langage
    Réponses: 3
    Dernier message: 04/10/2005, 11h50
  2. [ImageMagick] Générer une image à partir de plusieurs images ?
    Par fichtre! dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 16/02/2005, 16h32
  3. Comment récuperer une image d'un avi ?
    Par lil_jam63 dans le forum Langage
    Réponses: 4
    Dernier message: 24/09/2004, 20h34
  4. [CR] Inserer une image à partir d'un fichier
    Par Gandalf24 dans le forum SAP Crystal Reports
    Réponses: 7
    Dernier message: 23/07/2003, 11h55
  5. Réponses: 3
    Dernier message: 12/06/2002, 20h03

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