Effet de calque "foncé" sur les JPanel

1 réponse
Avatar
Bnj
Bonjour à tous,
j'aurais aimé savoir comment obtenir, si c'est possible, un effet de c
alque foncé sur certains de mes JPanels; je veux que mon image de fond a
pparaisse plu foncé derriere ces JPanels.

Merci d'avance, ;)

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Article poste via Voila News - http://www.news.voila.fr
Le : Wed Jul 16 10:19:51 2003 depuis l'IP : mimitoss.univ-poitiers.fr [VIP 5456432]

1 réponse

Avatar
Cedric
"Bnj" wrote

Bonjour à tous,
j'aurais aimé savoir comment obtenir, si c'est possible, un effet de c
alque foncé sur certains de mes JPanels; je veux que mon image de fond a
pparaisse plu foncé derriere ces JPanels.


Vi, la c'est une question interessante. Tu as deux options, a mon avis.
La premiere est de modifier tes images et d'utiliser une version claire ou
fonce selon ton besoin. C'est simple, mais un peu cra-cra pour du bon Java
:)
La seconde est de lire ton image dans un BufferedImage, puis de modifier la
couleur de chaque pixel. Il ne te reste qu'a dessiner ton BufferedImage dans
ton JPanel.
Un ch'ti bou d'code ?
<sniplet>
JPanel destination=new JPanel();
Image im=getImage("imgClaire.jpg");
int wi=im.getWidth(destination);
int he=im.getHeight(destination);
BufferedImage bi=new BufferedImage(wi,he,BufferedImage.TYPE_INT_ABGR);
int mesPixels[]=bi.getRGB(0,0,wi,he,null,0,1);
Color c;
int dark0; // valeur 0-255
darkÚrk<<24; // les bits 24-31 d'un int RGBA sont pour le champ alpha
for(int i=0;i<mesPixels.length;i++) {
c=new Color(mesPixels[i],true); // true pour preciser le champ alpha
c+Úrk;
mesPixels[i]=c;
}
bi.setRgb(0,0,wi,he,mesPixels,null,0,1);
</sniplet>

Voila.

Cedric