Domanda

Esiste un metodo per cambiare il valore LSB di componenti java.awt.Color RGB?

È stato utile?

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);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top