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

GLoarb 14 Messages postés dimanche 1 avril 2001Date d'inscription 14 octobre 2007 Dernière intervention - 10 oct. 2007 à 18:04 - Dernière réponse : GLoarb 14 Messages postés dimanche 1 avril 2001Date d'inscription 14 octobre 2007 Dernière intervention
- 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 

2 réponses

Répondre au sujet
Twinuts 5261 Messages postés dimanche 4 mai 2003Date d'inscription 20 avril 2018 Dernière intervention - 10 oct. 2007 à 19:01
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Twinuts
GLoarb 14 Messages postés dimanche 1 avril 2001Date d'inscription 14 octobre 2007 Dernière intervention - 14 oct. 2007 à 07:22
0
Utile
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.