Gibt es eine Äquivalenz von MapRGB für eine BufferedImage in Java?
-
24-09-2019 - |
Frage
Ich versuche, Farbe einzelner Pixel in einer BufferedImage
(TYPE_INT_RGB) mit setRGB()
, aber ich bin nicht sicher, wie die RGB-Werte zu formatieren. Ich möchte das Ergebnis als eine ganze Zahl. Gibt es eine Methode, die drei int
Werte (rot, grün, blau) und gibt eine ganze Zahl korrekt formatiert für setRGB()
nehmen?
Lösung
Angenommen, Sie haben Ints r
, g
und b
, können Sie tun:
int pixel = (r << 16) | (g << 8) | b;
Das ist, weil Pixel in einem BufferedImage
sind 4-Byte-ints. Der 4-Byte repräsentieren Alpha, Rot, Grün und Blau, in dieser Reihenfolge. Also, wenn Sie rot links von zwei Bytes und grün links um ein Byte verschoben, dann bitweise oder r
, g
und b
, werden Sie eine gültige Pixel auf die Verwendung mit setRGB()
erhalten.
Andere Tipps
new Color(red, green, blue).getRGB();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow