[SWING][JAVA2D] définir le couleur transparente d'un PNG
Bonjour,
J'ai deux images PNG à afficher. La première sert de fond d'écran, la seconde vient par dessus.
En ouvrant cette seconde image avec GIMP, il ya bien de la transparence sur les bords, mais affichée dans Internet Explorer le transparent est remplacé par du gris. Dans le Java (avec SetPaint et Fill) j'ai du noir.
Je ne trouve pas comment le faire.
J'ai utilisé la notion d'alphacomposite mais dans ce cas la transparence se fait au niveau de l'image entière.
N'est-ce pas dû au format de l'image ?
Intégrer des image dans un programme
Citation:
Envoyé par narkotik
pas de probleme,
par contre j'ai un truc à t'apprendre, ImageIO, tes tes images chargées avec ca ne seront pas accélérées, et donc si t'as besoin de vitesse pour faire une petite anim ou je sais pas quoi tu t'en rendras rapidement compte.
Toolkit.createImage(..) <= yeah accélérée grace à la mise en VRAM 8)
ImageIO.read(..) <= berk, pas accéléré, seulement mis en RAM :cry:
alors avant que tu pleures, j'te file une solus :)
BufferedImage src = javax.imageio.ImageIO.read(getClass().getResource(resource));
BufferedImage dst = gc.createCompatibleImage(src.getWidth(),src.getHeight(),src.getColorModel().getTransparency());
avec ca tu charges avec ImageIO et tu mets ca dans la VRAM, pas d'la balle ca? :P
Bonjour,
Vous êtes train de dire qu'il y a des images accélérées et non accélérées. En parlant de ça j'ai aussi un code semblable
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
import javax.imageio.*;
import java.io.*;
import java.awt.image.*;
private BufferedImage bi;
try {
this.bi = ImageIO.read(new File(source));
this.setSize(bi.getWidth(this), bi.getHeight(this));
catch (IOException ioe) {
} |
D'après ce que vous dites, l'image qui en résulte n'est pas accélérée. Comment faire pour qu'elle le soit ?
Merci de me répondre
Battant