Pregunta

¿Hay un método para cambiar el valor LSB de los componentes RGB java.awt.Color?

¿Fue útil?

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);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top