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

Langage Java Discussion :

[débutant][image] copier une image dans une autre.


Sujet :

Langage Java

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2003
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 14
    Points : 11
    Points
    11
    Par défaut [débutant][image] copier une image dans une autre.
    Bonjour, je souhaite créer une image à partir de motifs existant.
    Donc j'appelle correctement mon motif et je cree une Image tampon qui sera ma future image.

    En clair je recherche une fonction du type :

    MonImage = copierImage(Motif, entier1, entier2);

    Avec entier1 et entier2 les coordonnées du coin gauche haut du motif dans l'image finale. En fait je veux copier mon motif dans une image et le placer à ma guise.

    Merci.

  2. #2
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Il va falloir que tu fasses joujou avec java2d et la classe Graphics2D et ses méthodes drawXXX

    Grosso modo tu récupères la BufferedImage d'origine, tu crée un nouvelle BuferedImage de la taille voulue, tu crées ses Graphics2D, puis tu fais un drawImage de ton Image d'origine sur ces graphics

    http://java.sun.com/j2se/1.5.0/docs/...raphics2D.html

  3. #3
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 846
    Points : 22 851
    Points
    22 851
    Billets dans le blog
    51
    Par défaut
    Et aussi un peu car c'est un code simple et couramment poste. Aller voir la aussi ca aide...

  4. #4
    Membre à l'essai
    Inscrit en
    Février 2003
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    En fait il suffit de creer une bufferedImage de l'image finale et utiliser la fonction "drawImage" en indiquant l'image que l'on souhaite copier dans la nouvelle. Les 2 premiers couples de point correspondent à la zone où l'on veut copier le motif. Et les 2 autres couples correspondent à la zone que l'on souhaite copier du Motif.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    import java.awt.*;
    import java.awt.image.*;
    import java.io.File;
    import java.io.IOException;
    import javax.imageio.ImageIO;
     
     
    public class DessinCarte {
        public DessinCarte() {
        }
     
        public void initCarte() throws IOException {
            int width, height;
            String nomCarte;
            String DossierMotif = "Images/Terrains/";
     
            // Images
            Image Motif;
            BufferedImage bCarte;
     
            // Carte générée
            width = height = 200;
            nomCarte = "Images/Temp";
            bCarte = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
     
            // Motif utilisé
            Motif = Toolkit.getDefaultToolkit().getImage(DossierMotif + "Ocean.jpg");
            if(Motif.getHeight(null) <= 0) bCarte = null;
            else {
                System.out.println("Hauteur Motif: " + Motif.getHeight(null));
                bCarte = Composition(bCarte, Motif);
            }
     
     
            // on enregistre la carte
            if(bCarte != null) ImageIO.write(bCarte, "png", new File(nomCarte + ".png"));
        }
     
     
        BufferedImage Composition(BufferedImage bCarte, Image Motif){
            // On cree l'espace de travail et on ajoute le motif a la carte
            Graphics gCarte = bCarte.createGraphics();
            gCarte.drawImage(Motif,50,50,100,100,0,0,50,50,null);
     
            // on libere de la memoire
            gCarte.dispose();
     
            return(bCarte);
        }
    }
    Voila, et merci pour les tuyaux.

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

Discussions similaires

  1. copier une table d'une BDD dans une table d'une autre BDD
    Par faniette dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/05/2013, 10h17
  2. Réponses: 6
    Dernier message: 16/06/2011, 12h45
  3. Recuperer une valeur dans une grille sur une image
    Par gwal21 dans le forum Images
    Réponses: 3
    Dernier message: 26/02/2011, 23h41
  4. Copier une partie d'une form dans une image
    Par Duan dans le forum Débuter
    Réponses: 5
    Dernier message: 11/05/2009, 16h16
  5. Réponses: 2
    Dernier message: 02/06/2006, 11h26

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