OVH Cloud OVH Cloud

Superposer 2 images

1 réponse
Avatar
XorBror
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
=E0 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=3Dimage.createGraphics();
Composite newComposite =3D
AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha);

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

Toute aide sera la bienvue !! merci :-)

1 réponse

Avatar
Xavier Tarrago
Je n'ai pas de réponse mais quelques pistes:
- Il faut peut-etre que le format de l image supporte la transparence
(TYPE_INT_ARGB par exemple).
- Ce code:
g2d.setComposite(AlphaComposite.getInstance( AlphaComposite.SRC_OVER,
alpha));
g2d.drawImage(image, tr, null);
marche chez moi si il est dessiné sur le Graphics fourni par Swing. Il me
semble identique au tien, donc a mon avis c est plutot lié au Graphics et
donc au type de l image.

Bon courage...

"XorBror" a écrit dans le message de
news:
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 :-)