Superposition d'images [Résolu]

thony43 7 Messages postés lundi 6 juin 2005Date d'inscription 22 octobre 2008 Dernière intervention - 16 avril 2007 à 14:55 - Dernière réponse : Twinuts 5261 Messages postés dimanche 4 mai 2003Date d'inscription 20 avril 2018 Dernière intervention
- 17 avril 2007 à 12:48
Bonjour à tous,

je suis en train de bosser sur un site web dans lequel je dois superposer 2 images. pour être plus précis, je dois rajouter un disque en transparence sur une carte. Pour l'instant je fais comme ça (buffer est le BufferedImage contenant la carte):


Graphics2D g2d = buffer.createGraphics();
g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,0.3f));
g2d.setColor(Color.blue);
g2d.fillOval(175,175,100,100);

Le problème c'est que le résultat n'est pas très propre à cause de la
transparence. Je voudrais donc superposer un disque préalablement créé
en png pour obtenir quelque chose de plus joli. Et là je suis un peu
dans l'impasse.
Quelqu'un connaît une méthode pour superposer 2 images ?

Merci d'avance pour vos réponses
Afficher la suite 

Votre réponse

4 réponses

cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 16 avril 2007 à 15:12
+3
Utile
C'est exactement la même chose, sauf qu'au lieu d'un fillOval, tu fais un drawImage.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_DARKSIDIOUS
thony43 7 Messages postés lundi 6 juin 2005Date d'inscription 22 octobre 2008 Dernière intervention - 17 avril 2007 à 10:22
+3
Utile
Merci pour ta réponse DarkSidious, mais j'ai encore un problème.
Voilà ce que je fais :





java.awt.Toolkit toolkit = java.awt.Toolkit.getDefaultToolkit();





Image cercle = toolkit.getImage(getServletContext().getRealPath("img/circlepng8.png"));












Graphics2D g2d = buffer.createGraphics();







boolean test = g2d.drawImage(cercle,150, 150,null);




test a pour valeur false.
Est-ce que cela peut venir du 'null' passé à la place d'un ImageObserver ?

Merci
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de thony43
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 17 avril 2007 à 11:28
+3
Utile
Ca peut venir de cà : le imageobserver est un objet qui dit quand ton image est complètement chargée en mémoire : tu ne peux pas afficher une image tant qu'elle n'a pas complètement été chargée.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_DARKSIDIOUS
Twinuts 5261 Messages postés dimanche 4 mai 2003Date d'inscription 20 avril 2018 Dernière intervention - 17 avril 2007 à 12:48
0
Utile
Salut,

tu peux passer par un MediaTracker pour attendre le chargement de ton image ou par ImageIcon :

Image cercle = new ImageIcon( getServletContext().getRealPath("img/circlepng8.png")).getImage();
Graphics2D g2d = buffer.createGraphics();
boolean test = g2d.drawImage(cercle,150, 150,null);

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

WORA
Commenter la réponse de Twinuts

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.