Come leggere il colore dei pixel in un BufferedImage Java con trasparenza
-
22-09-2019 - |
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
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