Comment lire la couleur des pixels dans un tampon java avec transparence


Je lis la couleur des pixels dans une image tampon comme suit:

.....
InputStream is = new BufferedInputStream(conn.getInputStream());
BufferedImage image = ImageIO.read(is);

int color = image.getRGB(x, y);

int  red = (colour & 0x00ff0000) >> 16;
int  green = (colour & 0x0000ff00) >> 8;
int  blue = colour & 0x000000ff;

Maintenant, cela fonctionne bien sauf pour les png avec transparence. Je trouve que si x, y se réfèrent à un pixel transparent sans couleur, je lis toujours une couleur, généralement la même couleur que celle utilisée ailleurs dans l'image.

Comment détecter que le pixel est réellement transparent et non coloré?

Merci

Author: Topera, 2009-10-21

1 answers

int alpha = (colour>>24) & 0xff;

Le résultat est également une valeur allant de 0 (complètement transparent) à 255 (complètement opaque).

 17
Author: jarnbjo, 2009-10-21 10:38:56