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 是二进制 OR'ed 与一个带有 LSB 的数字,所以结果数字也将有它的 LSB。

someValue 与LSB 外的所有位都打开的数字进行“与”运算,因此结果数字的 LSB 将关闭。

someValue 与 LSB 打开的数字进行异或运算,因此生成的数字将切换其 LSB。

于 2009-12-09T03:15:30.820 回答