RGB: R, G und B als byte vorliegend

Status
Nicht offen für weitere Antworten.
G

Gast

Gast
Hallo :)
Ist es möglich, von einem einzelnen Pixel (aus einem BufferedImage) die RGB's als byte zu bekommen? Mit getRGB() wird nur eine 6-stellige negative Zahl ausgespuckt.

-Danke-
 

musiKk

Top Contributor
Entweder, du wurschtelst selbst mit Bitoperationen auf dem Pixel (der als int vorliegt?) herum oder du erstellst damit ein Color-Objekt und verwendest die Methoden getBlue/Green/Red(). Dabei erhältst du zwar kein byte, sondern ein int, aber da die Werte nur 0-255 betragen, kann es ja gefahrlos gecastet werden, nachdem Byte.MIN_VALUE draufaddiert wurde (damit es maximal 127 ist).
 

muckelzwerg

Bekanntes Mitglied
Zum Beispiel so:

Code:
rgb = img.getRGB(x, y);
r = ((rgb >> 16) & 0xff);
g = ((rgb >> 8) & 0xff);
b = (rgb & 0xff);
Alternativ kannst Du auch getRed(), getBlue() und getGreen() aus den ColorModel-Klassen verwenden.

-- -- muckelzwerg

Edith sagt mir musiKk war schneller.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben