是否有一种方法可以更改java.awt.Color RGB组件的LSB值?
答案 0 :(得分:3)
Color类是不可变的,你不能改变任何东西。但是,您可以使用您想要的任何值创建新颜色。例如,
int oldValue = oldColor.getRGB();
int newValue = (oldValue & 0xFFFFFF00) | (lsb & 0xFF);
Color newColor = new Color(newValue);
答案 1 :(得分:2)
稍等一下:
int value = someValue | 0x1;
稍微退一步:
int value = someValue & (~0x1);
如果该位在关闭或打开之前打开或关闭该位:
int value = someValue ^ 0x1;
换句话说: someValue与LSB打开的数字进行二进制或运算,因此得到的数字也将具有其LSB。
someValue与一个带有所有位的数字进行AND运算,除了 LSB on,所以得到的数字将有LSB OFF。
someValue与LSB打开的数字进行异或运算,因此生成的数字将使其LSB切换。