[JAVA] Superposer 2 images
XorBrox
-
kuangsaphir -
kuangsaphir -
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 :-)
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 :-)
A voir également:
- [JAVA] Superposer 2 images
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Supercopier 2 - Télécharger - Gestion de fichiers
- Waptrick java voiture - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
2 réponses
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);
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);