2009-12-08 46 views
0

是否有更改java.awt.Color RGB組件的LSB值的方法?設置Java java.awt.Color RGB組件的LSB

+1

你究竟在做什麼?改變一個特定的顏色組件? – 2009-12-08 20:04:52

+0

是的,這與在Color對象上調用setBlue()有什麼不同(假設RGB空間)? – 2009-12-08 20:12:23

+0

也許不是專色類。我想知道的是如何將一個整數的最低有效位設置爲1或0。 – Fortisimo 2009-12-09 02:02:42

回答

2

開啓位:

int value = someValue | 0x1; 

車削有點過:

int value = someValue & (~0x1); 

切換位或關閉,如果它是關閉或打開之前:

int value = someValue^0x1; 

換句話說: someValue與LSB上的數字進行二進制或運算,因此生成的數字也將具有其LSB。

someValue與所有位的數字進行AND操作,除了 LSB打開,因此生成的數字將有LSB OFF。

someValue與帶有LSB的數字進行XOR,因此生成的數字將使其LSB切換。

3

Color類是不可變的,你不能改變任何東西。但是,您可以使用所需的任何值創建新顏色。例如,

int oldValue = oldColor.getRGB(); 
    int newValue = (oldValue & 0xFFFFFF00) | (lsb & 0xFF); 
    Color newColor = new Color(newValue);