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

Interfaces Graphiques en Java Discussion :

récupère une partie de BufferedImage


Sujet :

Interfaces Graphiques en Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 47
    Par défaut récupère une partie de BufferedImage
    J’ai une image (BufferedImage)
    et je veut récupère une partie de cette image dans une autre image pour l’afficher ailleurs
    Par exemple a partie de la premier image je veut récupère la partie encadre par le rectangle (x1,y1).(x2,y2) .(x3,y3).(x4,y4) avec x1 #x2#x3#x4 #y1#y2#y3#y4
    SVP aide moi sur ce point je suis bloque depuis hier et merci
    J’ai trouve la méthode suivante

    BufferedImage copie = image.getSubimage(x, y, largeur, hauteur);

    Mais c’est pas ce que je veut car ça répond pas a ma condition x1 #x2#x3#x4 #y1#y2#y3#y4
    Merci de me répondre

  2. #2
    Membre expérimenté Avatar de hydraland
    Profil pro
    Développeur Java
    Inscrit en
    Mai 2006
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2006
    Messages : 179
    Par défaut
    Salut,

    Je ne vois pas pourquoi la méthode getSubimage(x, y, largeur, hauteur) ne te convient pas. Si tu as les coordonnées des 4 points de ton rectangle il est facile d'obtenir la largeur et la hauteur de celui-ci.Non???
    Exemple :
    Soit le rectangle suivant :
    x1,y1--------x2,y2



    x4,y4--------x3,y3
    Tu appelles la méthode comme ceci getSubimage(x1,y1,x2-x1,y4-y1).

    A+
    Hydraland

  3. #3
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 47
    Par défaut
    non c'est pas ce que je veut disant que c'est pas un rectange puisque
    x1 n'egale pas x4
    x3 n'esgale pas x2
    tu vois le probleme

  4. #4
    Membre expérimenté Avatar de hydraland
    Profil pro
    Développeur Java
    Inscrit en
    Mai 2006
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2006
    Messages : 179
    Par défaut
    Ca se complique.
    Je te propose la solution suivante, mais je ne sais pas si cela fonctionnera.
    Il faut que tu crèes un BufferedImage de la même taille que ton image initiale, soit BI son nom. Ensuite tu recupères le Graphics de BI tu lui associes comme clip une Shape qui représente ton rectangle(Je pense que c'est facilement possible avec un GeneralPath). Ensuite tu dessines sur BI ton image initiale. Sur BI si cela marche comme je pense tu auras que la partie du rectangle dessiné. J'ai trouvé ce lien (http://www.developpez.net/forums/sho...ht=GeneralPath) sur le forum il ne parle pas exactement de ton problème mais je pense qu'il peut servir.

    Bonne chance,
    A+
    Hydraland

  5. #5
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 900
    Billets dans le blog
    54
    Par défaut
    Citation Envoyé par hydraland
    Ca se complique.
    Je te propose la solution suivante, mais je ne sais pas si cela fonctionnera.
    Il faut que tu crèes un BufferedImage de la même taille que ton image initiale, soit BI son nom.
    En fait, si tu veux juste recuperer le strict minimum, BI doit avoir la meme taille que la boite englobante de la zone de clip. Sinon dans l'idee c'est tout a fait ca.

    De plus BI devra supporter la transparence (BufferedImage.TYPE_INT_ARGB) surtout si la forme de clip n'est pas rectangulaire. Et enfin le resultat peut varier en fonction de certains indices de rendus qui peuvent faire que les bordures de la zone de clip, la ou l'image s'arrete, sont plus ou moins adoucies (RenderingHints.KEY_RENDERING et RenderingHints.KEY_ANTIALIASING).

    A noter que c'est assez different de getSubimage() puisque avec cette methode il n'y a pas de duplication de donnee (la sous-image partage ses pixels avec l'image source). Dans ton cas tu creeras bien une nouvelle image completement differente.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  6. #6
    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
    La méthode du clip fonctionnera mais ne gérera pas l'antialiasing. Il est préférable de dessiner la shape *avec antialiasing* dans la nouvelle image, de mettre un AlphaComposite.SrcIn sur le Graphics puis de peindre l'image à clipper.

    bouye : Dans les implémentations de Sun, aucun rendering hint ne fournit d'antialiasing pour le clip, d'où la technique du SrcIn (ou SrcOut peut-être, je ne sais plus trop

Discussions similaires

  1. [XL-2007] Récupéré une partie de mon url
    Par diltech dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/08/2010, 06h49
  2. [MySQL] recuperer une partie de la chaine récupérée aprés d'aprés une requête MySQL
    Par bourbita.thameur dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 02/06/2009, 13h15
  3. [OpenSceneGraph]Récupéré une partie de la scene
    Par GrooveRage dans le forum OpenSceneGraph
    Réponses: 20
    Dernier message: 23/02/2008, 14h48
  4. Comprendre comment on récupère une partie d'une chaine
    Par nicolas2603 dans le forum VBA Access
    Réponses: 2
    Dernier message: 07/02/2008, 15h02
  5. récupéré une valeur de resource à partie d'une action
    Par florentB dans le forum Struts 1
    Réponses: 3
    Dernier message: 09/10/2007, 12h01

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