有没有办法改变 java.awt.Color RGB 组件的 LSB 值?
问问题
1174 次
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 回答