C'è un'equivalenza di MapRGB per un BufferedImage in Java?
-
24-09-2019 - |
Domanda
Sto cercando di colore singoli pixel in un BufferedImage
(TYPE_INT_RGB) utilizzando setRGB()
, ma non sono sicuro come formattare i valori RGB. Voglio che il risultato come un singolo intero. Esiste un metodo che prenderà tre valori int
(rosso, verde, blu) e restituire un intero correttamente formattato per setRGB()
?
Soluzione
Supponendo di avere interi r
, g
, e b
, si può fare:
int pixel = (r << 16) | (g << 8) | b;
Questo perché pixel in una BufferedImage
sono interi a 4 byte. I 4-byte rappresentano Alpha, rosso, verde e blu, in questo ordine. Quindi, se si sposta rosso sinistra da due byte e verde a sinistra da un byte, quindi bit a bit-o r
, g
, e b
, si otterrà un pixel valida per l'utilizzo con setRGB()
.
Altri suggerimenti
new Color(red, green, blue).getRGB();
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow