[JAVA] image dans cercle

Fermé
eyel - 11 mai 2005 à 10:09
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 - 11 mai 2005 à 11:02
Bonjour,
J'ai besoin en java de plaquer une image sur un cercle mais que cette image ne déborde pas du cercle :
J'ai un objet Graphics2D G et je fais :
G.fillOval(....);
G.drawImage(...);
Mais ceci renvoi une image carrée qui dépasse du cercle !!
Merci de m'aider !!
A voir également:

3 réponses

kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
11 mai 2005 à 10:56
Il faut que tu fasse deux objets graphique 'image' et que tu les mélange en les superposant avec un filtre :
Pour cela, regarde dans la java doc que tu trouvera avec Google, cherche la classe AlphaComposite qui devrait se situer dans java.awt.AlphaComposite et regarde plusparticulièrement les attribut 'rule' et 'alpha' :
alpha te permet de faire des effet de transparence, et 'rule' définie la manière de 'croiser' deux image (c'est ce qu'il te faut), Tu dois avoir une 'rule' qui te permet de n'afficher la partie de l'imageFond qui se situe dans l'image cercle qu'il te faudra créer.
Ainsi en gros tu importe ton image de fond :
BufferedImage imageFond = lectureImage(new File("imagedefond.jpg"));
// Transformation de l'image en obet graphique our la retoucher :
Graphic2D gImageFond = imageFond.createGraphics();

Puis tu créer une image cercle en objet graphique toujours et tu applique une des méthode 'rule' sur la réunion de tes deux images..

Je ne peux pas t'en dire plus pour le moment car j'ai un peu oblié les détails (j'ai déjà fais ce genre de choses mais mon boulot est chez moi), ce soir je pourrait te mettre un exemple si tu veux.

++
0
Merci beaucoup, je vais essayer de voir ça, mais si tu peux m'envoyer l'exemple se serait super !!!
Merci.
0
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
11 mai 2005 à 11:02
on verra ca ce soir alors

++
0