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

2D Java Discussion :

Sélectionner le quart haut gauche d'une image contenu dans un canvas


Sujet :

2D Java

  1. #1
    Membre averti Avatar de Chatbour
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 431
    Points : 305
    Points
    305
    Par défaut Sélectionner le quart haut gauche d'une image contenu dans un canvas
    Salut à tous et à toutes

    je cherche à sélectionner le quart d'une image, contenue par exemple dans un canvas. Je m'explique : j'ai deux canvas, je veux que le deuxième affiche le quart (haut, gauche) de l'image affichée par le premier..

    des idées ? merci d'avance.

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Tu as mis tous le code de construction de l'image dans la méthode "paint" ou alors tu construit une image qui est ensuite affiché via "paint" ?
    Si tout le code est dans "paint", alors tu peux construire une BufferedImage et tu transmets sont Graphics à la méthode "paint" du canvas. Ensuite, dans la méthode "paint" du second canvas, tu affiches la partie que tu veux de la BufferedImage.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Membre averti Avatar de Chatbour
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 431
    Points : 305
    Points
    305
    Par défaut
    emm, BufferedImage... j'ai pas pensé à ça..

    merci je vais essayer cette idée

  4. #4
    Membre averti Avatar de Chatbour
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 431
    Points : 305
    Points
    305
    Par défaut
    Re,

    je me suis débrouillé en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    /* Méthode qui sélectionne le quart haut gauche de l'image affichée */
    public void cut() {
         int w = img.getWidth(this)/2;
         int h = img.getHeight(this)/2;
     
         BufferedImage bm = (BufferedImage)this.createImage(w, h);
         Graphics2D gc = bm.createGraphics();
         gc.drawImage(img, 0, 0, this);
         img = bm.getSubimage(0, 0, w, h);
         repaint();
    }
    merci pour ton aide

  5. #5
    Membre averti Avatar de Chatbour
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 431
    Points : 305
    Points
    305
    Par défaut une erreur étrange
    Salut l'ami,

    j'ai un problème que je ne trouve pas l'explication : dans le code précédent, il suffit que je touche les paramètres x et y de la méthode getSubimage() de BufferedImage que je reçois tout d'un coup une exception RasterFormatException

    par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    img = bm.getSubimage(w/4, h/4, w, h);
    as-tu une idée ? merci d'avance..

  6. #6
    Membre averti Avatar de Chatbour
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 431
    Points : 305
    Points
    305
    Par défaut
    Re,

    j'ai finis par résoudre le problème en utilisant une variante de la méthode drawImage() au lieu de getSubimage() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    drawImage(img, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, observer);

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/05/2007, 17h43
  2. [Zip] Afficher une image contenue dans un fichier zip
    Par Mister Nono dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 19/03/2007, 08h59
  3. est ce qu on peu dimensionner une Image contenu dans un Jlabel
    Par uzumaki_naruto dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 24/02/2007, 16h33
  4. Réponses: 6
    Dernier message: 29/07/2005, 11h12
  5. [JAR] instancier une Image contenue dans un jar
    Par celine31 dans le forum Général Java
    Réponses: 3
    Dernier message: 03/04/2005, 15h55

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