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

War es hilfreich?

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
scroll top