Coller 2 images pour en former qu'une [Résolu]

Messages postés
14
Date d'inscription
dimanche 1 avril 2001
Dernière intervention
14 octobre 2007
- 10 oct. 2007 à 18:04 - Dernière réponse :
Messages postés
14
Date d'inscription
dimanche 1 avril 2001
Dernière intervention
14 octobre 2007
- 14 oct. 2007 à 07:22
Salut tt le monde!
J'aimerais coller 2 images pour n'en former qu'une.
J'ai image1.jpg et image2.jpg et j'aimerais avoir image3.jpg  qui est en fait l'image1 et l'image2 collé a la suite.

(Mon but est d'avoir 2 icones dans un JLabel)

Merci!

GLoarb!!
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
5292
Date d'inscription
dimanche 4 mai 2003
Dernière intervention
12 novembre 2018
- 10 oct. 2007 à 19:01
3
Merci
Salut,

la solution la plus spontanée que j'ai et pas forcément la plus belle, ni la plus optimisée, mais là comme ça et au vu de ma flème de me creuser la tete :

Note : Ici seul la méthode append t'intéresse, le reste c'est juste pour l'exemple d'utilisation

import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class Test {

    public static Image append(Image img1, Image img2) {
        BufferedImage buf = null;
        if(img1 != null && img2 != null) {
            int w1 = img1.getWidth(null);
            int h1 = img1.getHeight(null);
            int w2 = img2.getWidth(null);
            int h2 = img2.getHeight(null);
            int hMax = 0;
            int wMax = 0;
           
            hMax = (h1 >= h2) ? h1 : h2;
            wMax = w1+w2;
            buf = new BufferedImage(wMax, hMax, BufferedImage.TYPE_INT_ARGB);
            Graphics2D g2 = buf.createGraphics();
            g2.drawImage(img1, 0, 0, null);
            g2.drawImage(img2, w1, 0, null);
        }
        return buf;
    }
   
    public static void main(String[] args) {
        JFrame f = new JFrame();
        f.setDefaultCloseOperation(3);
        f.setSize(800, 600);
        f.setLocationRelativeTo(null);
       
       
        ImageIcon img1 = new ImageIcon("img1.png");
        ImageIcon img2 = new ImageIcon("img2.png");
        ImageIcon image = new ImageIcon(append(img1.getImage(), img2.getImage()));
        JLabel label = new JLabel();
        label.setIcon(image);
       
       
        f.setContentPane(label);
        f.setVisible(true);
    }
}

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO

Merci Twinuts 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de Twinuts
Messages postés
14
Date d'inscription
dimanche 1 avril 2001
Dernière intervention
14 octobre 2007
- 14 oct. 2007 à 07:22
0
Merci
Merci!

GLoarb!!
Commenter la réponse de GLoarb

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.