Domanda

Sto leggendo il colore dei pixel in un BufferedImage come segue:

.....
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;

Ora questo funziona benissimo tranne PNG con trasparenza. Ho trovato che se x, y riferimento ad un pixel trasparente senza colore, gli ancora letto un colore, generalmente dello stesso colore usato altrove nell'immagine.

Come faccio a rilevare che il pixel è in realtà trasparente e non colorato?

Grazie

È stato utile?

Soluzione

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

Il risultato è un valore compreso tra 0 (completamente trasparente) e 255 (completamente opaco).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top