Ich lese Pixelfarbe in einem BufferedImage lesen wie folgt:Wie Pixelfarbe in einem Java BufferedImage mit Transparenz
.....
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;
Jetzt funktioniert dies gut, außer für PNGs mit Transparenz. Ich finde, wenn sich x, y auf ein transparentes Pixel ohne Farbe beziehen, lese ich immer noch eine Farbe, im Allgemeinen die gleiche Farbe wie an anderer Stelle im Bild.
Wie erkenne ich, dass das Pixel tatsächlich transparent und nicht farbig ist?
Dank
Denken Sie daran, dass, wenn Alpha 0 (transparent) ist, die Farbwerte nicht wirklich wichtig sind. Wahrscheinlich ein Optimierungsschritt in einigen Editoren, um keine Farbwerte einzustellen, wenn Alpha 0 ist. – basszero
great - vielen Dank, sehr hilfreich –
danke - Ich bin überrascht, dass die BufferedImage-Klasse keine Methode hat "int getTransparency (int x , y); " – greenimpala