Rechercher : dans
Par :

[JAVA] Superposer 2 images

Dernière réponse le 16 oct 2009 à 16:19:06 XorBrox, le 21 oct 2005 à 23:03:14 
 Signaler ce message aux modérateurs

Bonjour,

J'essaye d'ecrire une methode qui retourne une instance d'un BufferedImage representant la superposition de 2 images.
Pour cela, dans un premier temps j'essaye seulement de rendre une image transparente.
Apres quelques recherches j'ai vu qu'on pouvait gerer la transparence à partir d'un alphaComposite, mais j'ai fait une methode et ca ne marche pas.

Voici le code :

public BufferedImage createComposite(BufferedImage image, float alpha)
{
Graphics2D g2=image.createGraphics();
Composite newComposite = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha);

g2.setComposite(newComposite);
g2.drawImage(image, null, null);
return image;
}

Toute aide sera la bienvue !! merci :-)

Meilleures réponses pour « [JAVA] Superposer 2 images » dans :
[Photofiltre]Réaliser un assemblage de 2 images VoirPhotofiltre est un logiciel de retouche d'image. Cette astuce fonctionne aussi bien avec Photofiltre qu'avec Photofiltre Studio Dans ce cas précis, Photofiltre va permettre d'assembler un collage c'est-à-dire de coller une deuxième image (en...
Création d'image Système (Ghost) VoirCréer une image (ghost) de partition 1 - Intérêt 2 - Pré-requis 2.1 - Explication 2.2 - Opportunités des partitions 2.3 - Mise à jour des images 2.3.1 - Image incrémentale : intéressant mais dangereux ! 2.3.2 - Image incrémentale et...
Animer une séquence d'images avec Gimp VoirGimp permet, entre autres, de créer une animation en superposant plusieurs images. Cette animation peut alors être sauvée au format gif. Sommaire I. Images utilisées pour notre exemple II. Ouvrir la première image puis les autres en tant...
Traitement d'images VoirIntroduction au traitement d'images On désigne par traitement d'images numériques l'ensemble des techniques permettant de modifier une image numérique dans le but de l'améliorer ou d'en extraire des informations. Histogramme Un histogramme est...

1

Tewfik, le 15 mai 2007 à 08:48:04

Bonjour,

J'ai déjà fait ce genre de chose en C et OpenGL.
Il suffit de créer une nouvelle image dans laquelle chaque pixel est coloré avec 60% de celle qui sera au dessus et 40% de celle qui sera au dessous.

Tewfik

Répondre à Tewfik

2

 kuangsaphir, le 16 oct 2009 à 16:19:06

Tu peut utiliser le API en java (JAI)
voici de code:

FileSeekableStream stream = null,stream1 = null,stream2=null;
PlanarImage image1 = null,image2= null,image3 = null,resultat=null;
String file1 = "D:/cours ENSISA/cours ENSISA/ENSISA_3A/projet 3A/photo/demo4_HDR/01norm.jpg";
String file2 = "D:/cours ENSISA/cours ENSISA/ENSISA_3A/projet 3A/photo/demo4_HDR/01sous.jpg";
String file3 = "D:/cours ENSISA/cours ENSISA/ENSISA_3A/projet 3A/photo/demo4_HDR/01sur.jpg";
File f1 = new File(file1);
File f2 = new File(file2);
File f3 = new File(file3);

try{
stream = new FileSeekableStream(f1);
stream1 = new FileSeekableStream(f2);
stream2 = new FileSeekableStream(f3);
}catch(IOException ioe)
{
ioe.printStackTrace();
System.exit(1);
}

image1 = JAI.create("stream", stream).getRendering();
image2 = JAI.create("stream", stream1).getRendering();
image3 = JAI.create("stream", stream2).getRendering();

ParameterBlock pb = new ParameterBlock();
pb.addSource(image2);
pb.addSource(image1);
pb.addSource(image3);
resultat = JAI.create("add", pb);

pb.addSource(resultat);
resultat = JAI.create("add", pb);
DisplayJAI display = new DisplayJAI();
display.set(resultat);

jScrollPane1 = new javax.swing.JScrollPane(display);

Répondre à kuangsaphir