So lesen Sie die Pixelfarbe in einem Java -Bufferedimage mit Transparenz
-
22-09-2019 - |
Frage
Ich lese Pixelfarbe in einem gepufferten Abschluss wie folgt:
.....
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;
Nun funktioniert dies einwandfrei, bis auf PNGs mit Transparenz. Ich finde, wenn x y sich auf ein transparentes Pixel ohne Farbe beziehe, lese ich immer noch eine Farbe, im Allgemeinen die gleiche Farbe wie an anderer Stelle im Bild.
Wie erfasse ich, dass das Pixel tatsächlich transparent und nicht gefärbt ist?
Vielen Dank
Lösung
int alpha = (colour>>24) & 0xff;
Das Ergebnis ist auch ein Wert von 0 (vollständig transparent) bis 255 (vollständig undurchsichtig).
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow