Superposition d'images

Résolu
thony43 Messages postés 7 Date d'inscription lundi 6 juin 2005 Statut Membre Dernière intervention 22 octobre 2008 - 16 avril 2007 à 14:55
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 - 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

4 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
16 avril 2007 à 15:12
C'est exactement la même chose, sauf qu'au lieu d'un fillOval, tu fais un drawImage.
3
thony43 Messages postés 7 Date d'inscription lundi 6 juin 2005 Statut Membre Dernière intervention 22 octobre 2008
17 avril 2007 à 10:22
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
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
17 avril 2007 à 11:28
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.
3
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
17 avril 2007 à 12:48
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
0
Rejoignez-nous