Establecer los LSB de los componentes de Java java.awt.Color RGB
Pregunta
¿Hay un método para cambiar el valor LSB de los componentes RGB java.awt.Color?
Solución
Volviendo un poco en:
int value = someValue | 0x1;
Volviendo un poco fuera:
int value = someValue & (~0x1);
alternar el bit activado o desactivado si estaba apagado o encendido antes:
int value = someValue ^ 0x1;
En otras palabras: someValue es con OR binario con un número con el LSB en lo que el número resultante tendrá su LSB demasiado.
someValue se AND'ed con un número con todos los bits excepto LSB en lo que el número resultante tendrá LSB OFF.
someValue se XOR'ed con un número con el LSB en, por lo que el número resultante tendrá su LSB activar y desactivar.
Otros consejos
La clase Color es inmutable, no se puede cambiar nada. Sin embargo, puede crear un nuevo color con cualquier valor que quiera. Por ejemplo,
int oldValue = oldColor.getRGB();
int newValue = (oldValue & 0xFFFFFF00) | (lsb & 0xFF);
Color newColor = new Color(newValue);