0

java.awt.Color RGB コンポーネントの LSB 値を変更する方法はありますか?

4

2 に答える 2

3

Colorクラスは不変であり、何も変更できません。ただし、任意の値で新しい色を作成できます。例えば、

   int oldValue = oldColor.getRGB();
   int newValue = (oldValue & 0xFFFFFF00) | (lsb & 0xFF);
   Color newColor = new Color(newValue);
于 2009-12-08T20:17:22.390 に答える
2

少しオンにする:

int value = someValue | 0x1;

少しオフにする:

int value = someValue & (~0x1);

以前にオフまたはオンだったビットをオンまたはオフに切り替える:

int value = someValue ^ 0x1;

つまり、someValue は LSB がオンになっている数値とバイナリ OR 演算されるため、結果の数値も LSB がオンになります。

someValue は、 LSB を除くすべてのビットがオンの数値と AND 演算されるため、結果の数値は LSB がオフになります。

someValue は LSB がオンの数値と XOR されるため、結果の数値の LSB はトグルされます。

于 2009-12-09T03:15:30.820 に答える