Impostare i componenti di LSB Java java.awt.Color RGB
Domanda
Esiste un metodo per cambiare il valore LSB di componenti java.awt.Color RGB?
Soluzione
Girando un po ':
int value = someValue | 0x1;
Girando un po 'fuori:
int value = someValue & (~0x1);
La commutazione del bit o disattivare se era fuori o prima:
int value = someValue ^ 0x1;
In altre parole: someValue è tramite OR binario con un numero con il LSB su così il numero risultante avrà il suo LSB troppo.
someValue è combinato in AND con un numero di tutti i bit tranne LSB in modo che il numero risultante avrà LSB OFF.
someValue è esservi effettuato lo XOR con un numero con il LSB acceso, in modo che il numero risultante avrà i suoi LSB commutato.
Altri suggerimenti
La classe Color è immutabile, non si può cambiare nulla. Tuttavia, è possibile creare un nuovo colore con qualsiasi valore desiderato. Ad esempio,
int oldValue = oldColor.getRGB();
int newValue = (oldValue & 0xFFFFFF00) | (lsb & 0xFF);
Color newColor = new Color(newValue);