2
我是新來的位操作,並希望做到以下幾點:
我需要我的程序倒置顏色的argb代碼,如紅色變成青色或白色變成黑色。試用photoshop我發現,所以你必須計算255 - 紅色,255 - 綠色和255 - 藍色。因此,這看起來是這樣的:位操作:反向argb忽略阿爾法
int getInversed(int argb) {
Color old = new Color(argb);
Color negative = new Color(255 - old.getRed(), 255 - old.getGreen(), 255 - old.getBlue(), old.getAlpha());
return negative.getRGB();
}
現在我猜如果你把紅,綠和藍值作爲8位bytes
,你可以簡單地逆它們與~
運營商獲得相同結果。
但我不能逆整個ARGB代碼,因爲這也將逆α和我想的α不變:
public int getInversed(int argb) {
return ~argb; //inverses alpha as well
}
所以,我怎麼能與逆位操作的ARGB代碼,忽略Alpha一部分?
簡單的方法是屏蔽掉你需要反轉的部分:'面膜= 0XFFFFFF; argb =(〜argb&mask)| (argb&〜mask);' –